PIXNET Logo登入

胖虎的祕密基地

跳到主文

我是孩子王~我是人見人愛的胖虎~~

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 10月 07 週二 200823:18
  • [轉貼] 客製化 Ubuntu Live CD


本篇來源:Google找到的~原始出處未知


正需要這個,下載來好好研究下。
普通版製作過程
大致分以下幾步:安裝一個ubuntu,並按需求定製系統;壓縮成 squashfs 映像;搭配內核和定製過的initrd文件,即可啟動。
最佔時間的是第一步——定製系統,因為既要儘量壓縮體積,又要保證系統正常運行,還要適當美化,
需要耐下心慢慢搞。大致說一下我的製作過程,明白了原理,就隨便你發揮了。
1.定製系統
一開始是用 desktop 版安裝系統,後來發現精簡效果不好,做出來的系統映像有400多M,汗……
於是改用 alternat 最小化安裝,一點點添加軟件,這次好多了。
安裝源用的 ubuntu-7.04-dvd-i386.iso 和 用雕兄的方法製作的一個本地源。本地源裡是一些 DVD 中沒包括、
而自己又希望安裝的包,如 xfce4、xfce4-terminal、xfce4-mixer、w32codec、mplayer 等等。
具體製作方法請參照雕兄原作:http://forum.ubuntu.org.cn/viewtopic.php?t=32554
當然如果網速比較快的話,也可以直接從網上安裝。
做好了準備,下面正式開始。
安裝基本系統:方法一,刻盤安裝,從光盤啟動後選 Install a command-line system ,
語言選 簡體中文 ,按提示安裝即可,中間不用配置網卡,也不用連接網絡。方法二,硬盤安裝,
下載合適的硬盤引導文件,引導安裝。不同之處在於,方法一安裝的只是基本系統, 而方法二會額外裝一些軟件,如 open office 等。
裝好後重啟,設置好源,開始定製系統:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xorg xfce4 synaptic fcitx firefox …
具體裝哪些包,按需而定,總之裝的越多功能越全,但體積也越大。默認安裝的,用不著的就 remove 。中文字體我只裝了一個 ttf-arphic-uming 。
然後做各種配置,如 面板、主題、圖標、程序字體 等等。
最後,
sudo apt-get install discover1 xresprobe (輔助硬件檢測)
sudo apt-get autoremove (清理無用包)
sudo apt-get clean (清理緩存包)
2.製作系統映像
需在另一個系統中操作。
先安裝工具:apt-get install squashfs-tools
對目標系統進行適當清理,如 清空 /etc/fstab、/etc/mtab,配置 sources.list ,刪除 /etc/X11/xorg.conf 等。
製作映像:進入 目標系統 所掛載的目錄,運行 sudo mksquashfs . /ubuntu704m.squashfs ,
這樣將在本系統根目錄下生成映像文件。可用其它文件名,但擴展名必須為 .squashfs ,因為啟動時會以該擴展名作為特徵來搜索系統映像。
3.定製 initrd 文件
其實就是把 /boot/initrd.img-2.6.20-15-generic 拿來稍作修改。
ubuntu 的 initrd 文件中都包含 Live CD 模式啟動腳本,而本系統啟動正是模仿了 Live CD ,所以可以直接借用這些腳本。
解開 initrd.img-2.6.20-15-generic:
mkdir /boot/initrd
cd /boot/initrd
cat ../initrd.img-2.6.20-15-generic | gzip -d | cpio -i
/boot/initrd 目錄中就是 initrd 裡的文件,其實是一個微型的根系統,由 GRUB 加載到內存,內核運行其中的 init
,若檢測到啟動參數中有 boot=casper ,便調用 /scripts/casper 腳本,尋找系統映像,並與 tmpfs 組成 unionfs ,
作為真實根系統啟動。而啟動前會運行 /scripts/casper-bottom 中的腳本,對系統進行配置。
從腳本的名字和註釋大致可以猜到它的功能,我們要做的就是留下有用的,去掉沒用甚至有害的。
我留下了
02_timezone 13swap 22screensaver 31disable_update_notifier
05mountpoints 20xconfig 23networking 32disable_hibernation
12fstab 22gnome_panel_data 25configure_init 40install_driver_updates
可能有些還是顯得多餘,自己斟酌吧。
然後重新打包:
cd /boot/initrd
find . | cpio -L -o -H newc | gzip > ../initrd.gz
OK,東西都齊了,至於如何放置、如何啟動,就請參考您下載的 ubuntu 7.04-m 吧 :)
匆匆寫就,不甚詳盡,有問題找 google ,應該都能搞定。祝願大家順利做出自己個性化的 ubuntu 。
(繼續閱讀...)
文章標籤

正義的胖虎 發表在 痞客邦 留言(0) 人氣(4,472)

  • 個人分類:
▲top
  • 10月 07 週二 200823:18
  • [轉貼] Linux 開機程式載入的順序


本篇出自:D.C資訊交流網 Linux討論區


1. 加載 BIOS 的硬件信息,並取得第一個開機裝置的代號;
2. 讀取第一個開機裝置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的開機信息;
3. 加載 Kernel 操作系統核心信息, Kernel 開始解壓縮,並且嘗試驅動所有硬件裝置;
4. Kernel 執行 init 程序並取得 run-level 信息;
5. init 執行 /etc/rc.d/rc.sysinit 檔案;
6. 啟動核心的外掛模塊 (/etc/modprobe.conf);
7. init 執行 run-level 的各個批次檔( Scripts );
8. init 執行 /etc/rc.d/rc.local 檔案;
9. 執行 /bin/login 程序,並等待使用者登入;
10. 登入之後開始以 Shell 控管主機。
(繼續閱讀...)
文章標籤

正義的胖虎 發表在 痞客邦 留言(0) 人氣(2,167)

  • 個人分類:
▲top
  • 10月 07 週二 200823:17
  • [轉貼] 好用的網管指令-lsof


作者: etony
來自: Linuxsir.org
提要: lsof(lsof的全稱是list open files),此工具可以用來查看正在運行中的進程打開了哪些文件、目錄和套接字;是系統監測工具之一。
在服務器管理中,我們還是常用到這個工具的。如果有需要的弟兄,建議還是看看。最少也知道lsof是做什麼用的。


lsof 快速起步
C.F.AN etony@tom.com
nov 16, 2005
查看對某個文件的使用情況
查看哪些進程對某個文件進行了調用:
$ lsof /etc/passwd
查看對文件系統的使用
/tmp目錄被垃圾文件塞滿了, 但是, 用ls 又看不到太大文件, 誰幹的?
$ lsof /tmp
查找打開,但是不能連接的文件
一個進程打開一個文件, 然後將其設為 unlinked 狀態, 則此文件資源仍能被進程使用, 但是其訪問路徑已經被刪除了.
因此, 使用ls不能將其列出. 只有當進程結束時, 才能釋放文件佔用的資源
查找unlinked 文件, 選項 +L, 作用: 列出打開文件的連接數
$lsof +L
指定連接數的上限 $lsof +L1
同時指定文件系統, 則需要使用 -a(AND) 選項
$ lsof -a +L1 /home
無法卸載
查看誰令mount的分區無法卸載
$ lsof <file_system_name>
查看監聽socket
查看網絡服務
$ lsof -i
查看某個網絡連接
$ lsof -i@aaa.bbb.ccc
$ lsof -iTCP@aaa.bbb.ccc:ftp-data *指定協議*
$ lsof -i4 *指定IP版本*
$ lsof -i6
識別 Netstat 連接
例如: netstat -p -t -n 的輸出為:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 218.56.203.246:52634 202.109.72.72:7000 ESTABLISHED
則可以: tony@tony:~$ lsof -iTCP@202.109.72.72:7000
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xchat 4505 tony 12u IPv4 5775 TCP 218.56.203.246:52634->202.109.72.72:afs3-fileserver (ESTABLISHED)
查找針對某個命令打開的文件
使用命令的PID
$ lsof -p <PID>
使用命令名稱
$ lsof -c <first_characters_of_command_name_that_interest_you>
$ lsof -c sendmail
查看誰在使用設備文件
$ lsof /dev/hda6
查看某個用戶的操作
$ id -u tony
1000
$ lsof -u1000 or $ lsof -utony
$ lsof -u^tony * 則是取反的意思*
(繼續閱讀...)
文章標籤

正義的胖虎 發表在 痞客邦 留言(0) 人氣(22,249)

  • 個人分類:
▲top
  • 10月 07 週二 200823:16
  • [轉貼] 好用的流量偵測-bmon


本篇出自:鑑盤語言  


可以於 shell 下監控網路流量的狀況(而且是動態的圖唷(用 * 畫的動態圖))
  • RX: 流進

  • TX: 流出

  • (繼續閱讀...)
    文章標籤

    正義的胖虎 發表在 痞客邦 留言(0) 人氣(871)

    • 個人分類:
    ▲top
    • 10月 07 週二 200823:16
    • [點解]遺失 root 密碼的解決方法


    方法一、這個時候就必須要使用到 /etc/shadow 這個資料!
    所以只要你能夠以各種可行的方法開機進入 Linux ,
    例如單人維護模式,或者是以 live CD (KNOPPIX) 來進入 Linux 系統。
    之後,將硬碟順利掛載,然後進入 /etc/shadow 這個檔案中,
    將 root 的密碼這一欄全部清空!然後再登入 Linux 一次,
    這個時候 root 將不需要密碼 (有的時候需要輸入空白字元) 就可以登入了!
    這個時候請趕快以 passwd 設定 root 密碼即可。
    方法二、啟動電腦(或重新開 機),
    當出現多重開機管理程式的開機選單後,按一下A鍵。
    出現grub append> ro root=LABEL=/ rhgb quiet 訊息後,按一下空白鍵,
    然後輸入 s。出現 sh-2.05b# 訊息後,
    輸入 passwd root 。出現 New UNIX password: 訊息後,輸入root帳號的密碼,
    出現Retype new UNIX password: 訊息後,
    再次輸入root帳號的密碼,以做確認。完成設定後,輸入reboot指令,重新開機。
    (我都使用方法二來更改root密碼)

    (繼續閱讀...)
    文章標籤

    正義的胖虎 發表在 痞客邦 留言(0) 人氣(1,868)

    • 個人分類:
    ▲top
    • 10月 07 週二 200823:15
    • [轉貼]Ubuntu環境下編譯內核詳解


    本篇全文出自:Ubuntu 中國論壇-ubuntu環境下編譯內核詳解


    聲明:本文是個人參考網上有關資料,編譯2.6.25內核的總結,如按本文步驟編譯內核造成的責任和本文作者無關。
    本文放在本人的blog上面:http://hi.baidu.com/ffbp89/
    本文還有姊妹篇《老筆記本編譯2.6.20內核指導》
    如果有修改,也在blog上。
    歡迎轉載本文,但是請不要取消本聲明。
    寫這篇東西主要是教學目的,學生可以結合編譯內核覆習shell的有關命令。
    一、下載源代碼和編譯軟件的準備
    下載內核源代碼:http://www.kernel.org/
    注意,點擊2.6.25內核的F版,即完整版。
    如果你懶得去網站點聯接,運行下列命令:
    代碼:
    $cd ~
    $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.10.tar.bz2
    安裝有關編譯程序。安裝make ,gcc, make-kpkg,運行menuconfig等等和編譯內核相關的工具。
    安裝不了,請檢查/etc/apt/sources.list 文件。
    有關命令:
    代碼:
    $sudo  apt-get install build-essential kernel-package   libncurses5-dev
    二、解壓源代碼
    注意,網上很多教程上說應該解壓到 /usr/src,純屬以訛傳訛,linux掌門人linus說解壓到任何目錄上都可以。當然,linus的說法是正確的。我放在自己的主目錄下的src目錄。
    如果你下載源代碼是放到自己的主目錄下或者運行上面的wget下載的,那麼運行下列命令:
    代碼:
    $ cd ~
    $ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/
    現在,源代碼就在 ~/src/linux-2.6.25.10
    進入源代碼的目錄,準備下一步的工作。後面都在這個目錄裡面進行。
    代碼:
    $ cd ~/src/linux-2.6.25.10
    三、開始編譯前的準備工作。
    首先,清理以前編譯時留下的臨時文件。如果是剛剛解開的包,不需要執行這步。如果是第二次或者是第n次編譯,那麼一定要執行。
    相關命令如下:
    代碼:
    $ sudo make mrproper
    網上很多教程上說把現在使用的內核的config拷貝過來參考,據實驗,是不需要的,ubuntu還有
    debian會自動做這步。不過這條命令倒是可以學習一下。當然你可以將以前的配置拷貝過來。
    命令:
    代碼:
    cp /boot/config-`uname -r` ./.config
    四、開始配置內核選項。
    相關命令:
    代碼:
    $sudo make menuconfig
    配置用到的鍵只有幾個,esc退出菜單;空格改變選項狀態;光標鍵上下左右移動,回車選定。
    選項意義:M是編譯成可以隨時加入的模塊,*是編譯進入內核,空就是不要。
    配置選項非常多,具體配置可以參考金步國先生翻譯的資料:Linux 2.6.19.x 內核編譯配置選項。
    參考網址:http://lamp.linux.gov.cn/Linux/kernel_options.html
    為了一次成功,請大家遵循一個原則,如果你自己使用的內核已經選用了某個選項,如果你沒用充分的理由,不要隨便改動。這樣雖然內核不那麼精簡,但是不容易出現問題。
    我們可以精簡的部分是硬件模塊部分,對於自己沒有的硬件要毫不猶豫的清除。
    如果你很執著,或者你有潔癖,你也可以一項項對過去,按照金步國先生的資料描述去選擇基本上沒有問題。
    五、必須強調的幾個選項:
    1、在「General setup」裡面的「Prompt for development and/or incomplete code/drivers」金步國認為是不需要。但是如果你的硬件比較新,那幾乎是必須選的,這樣,我們才可以找到4965無線網卡,alsa聲音驅動等 等。
    Kernel log buffer size 我選15,雙核。如果你用ia64,要選16。
    Control Group support 集群支持?可以不要
    Choose SLAB allocator (SLUB (Unqueued Allocator)) 內存管理模式slab和slub選擇slub。
    2、在「Block layer」裡,假如沒有2TB的硬盤,就去掉:Support for Large Block Devices 。Support for Large Single Files 也不需要,誰有2TB的文件?
    3、Processor type and features中是關於cpu的,要認真選。
    Symmetric multi-processing support是打開多核的開關,我的cpu是雙核的,選中。
    Processor family (Core 2/newer Xeon) 我的是Core 2/newer Xeon。找到自己的cpu後,把Generic x86 support選項取消。
    Subarchitecture Type 選(PC-compatible)
    Maximum number of CPUs 輸入自己的核心數目,我輸入2。
    SMT (Hyperthreading) scheduler support說的是超線程技術,P4有支持的,我的t8100不支持,目前大部分市場上的家用cpu都不支持。
    High Memory Support (4GB) 1G以下選1G;我是3G,選4G;4G以上的選16G
    在「 Timer frequency 」裡,默認是250Hz,較新的cpu都可以選擇了1000Hz,性能更好。
    4、Power management options中把APM (Advanced Power Management) BIOS support關閉。現在的電腦都用acpi了。
    CPU Frequency scaling 是筆記本cpu節電技術
    Default CPUFreq governor (conservative) cpu節電模式有四個,筆記本默認選conservative比較好。
    ACPI Processor P-States driver 必須選,不然CPU Frequency就不能用。
    後面的可選自己硬件相關的,我選的是Intel Enhanced SpeedStep和 Intel Speedstep on ICH-M chipsets,其他的統統消滅。
    5、Bus options的選擇:
    Bus options (PCI, PCMCIA, EISA, MCA, ISA)
    PCI support
    PCI Express support 現在新買的機器基本上都是PCI Express了
    ISA support 較新的新機器沒有ISA設備,可以去掉
    MCA support 去掉
    NatSemi SCx200 support 去掉
    PCI Hotplug Support
    Support for PCI Hotplug (EXPERIMENTAL) 如果沒有PCI熱插拔設備,去掉
    這裡的選項可以考慮全部編譯進內核,而不是以模塊形式存在。
    6、Device Drivers是重點,由於linux不但面向個人工作站,更多的是面向服務器的應用,所以可以把自己機器上沒有的硬件全部去掉,而不用面面俱到。但是通用型的選項要慎重。
    比如在網卡的部分,除了我的千兆網卡 Broadcom Tigon3 support和4965無線網卡Intel Wireless WiFi 4965AGN,其餘的硬件支持統統去掉。
    再比如聲卡部分,我的是hd聲卡,我只是在PCI devices中,選intel hd 聲卡,再選Build IDT/Sigmatel HD-audio codec support,除此之外的硬件支持全部去掉。
    聲卡還有一個細節,在ubuntu7.10里面, 需要在/etc/modprobe.d/alsa-base後面添加options snd-hda-intel probe_mask=1 model=3stack,這樣我的筆記本喇叭才可以發聲,不然只有外接耳機或者音箱。這次編譯以後,這個動作就不必了,但是兩個耳機插口只有一個可以用 了。
    再比如我的電腦中沒有agp,就可以直接把agp相關的選項全部取消。
    要注意的:
    ATA/ATAPI/MFM/RLL support
    Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬盤上,那麼這裡一定要選*,選M都不行。否則啟動時會出現「waiting for root file system」的提示而停滯不前。
    SCSI emulation support 要用刻錄機,必須選。
    SCSI device support 現在都是SATA硬盤,一定要選*
    SCSI disk support 如果你的/boot放在SATA硬盤上,一定要選*。
    SCSI CDROM support 雖然康寶刻錄機是ide接口的,但是必須把它當成scsi接口的,這是老問題了。用刻錄機,必須選。
    Graphics support
    Support for frame buffer devices 選中,進入選擇
    VESA VGA graphics support 選上,不然字符界面啟動會有問題,
    後面的顯卡選擇:由於我的顯卡是nvidia 8400gs,要自己安裝nvidia公司的驅動,所以一個都沒有選。這樣導致ubuntu開機動畫會出問題,我索性在grub中的splash字符全部刪除,把開機動畫關閉。字符界面很正常。
    Console display driver support 有人開機後字符控制台錯誤,就是這部分選項沒有選,出問題了。
    Framebuffer Console support 需要打開。
    Bootup logo 開機圖標,會在自檢的畫面上加上個性圖標。需要在grub上添加「vga=」的選項,可以參考http://dotimes.com/articles /t23-slackware-framebuffer.html
    7、File systems
    Filesystem in Userspace support 簡稱fuse。是必選的,如果你要用windows分區。
    CD-ROM/DVD Filesystems
    ISO 9660 CDROM file system support 一般選*
    DOS/FAT/NT Filesystems
    VFAT (Windows-95) fs support 有FAT32分區就選*吧
    NTFS file system support 有NTFS分區就選*吧
    NTFS write support 如果想對 NTFS分區進行寫操作,選*
    必須將啟動盤的文件系統編譯進內核,默認是編譯成模塊,這樣無法啟動系統。ubuntu採用的文件系統是ext3,請把ext2,ext3相關的必要選項都編譯進入內核。
    8、Virtualization這個大類是我多花幾百元買t8100的主要原因,因為t8100支持intel vt技術
    使linux上的虛擬機的性能大幅度提高。這裡的選項我除了amd的,其他都編譯成模塊。
    9、全部設置完成,最後一項是保存設置。
    按照我的習慣,先在上一層目錄保存一個備份,文件名類似 ../config20080630
    然後再保存到當起目錄,文件名 .config
    退出設置程序。
    六、開始編譯內核。
    ubuntu的工具是make-kpkg,和其他的發行版相比,步驟相對簡單。
    相關命令:
    代碼:
    $sudo make-kpkg clean   這條命令好像不要超級權限,很多資料上說要,不過這不是原則問題。
    $ sudo make-kpkg -initrd --initrd --append-to-version=dell1400 kernel_image kernel-headers
    上述命令中的dell1400可以用自己喜歡的字符代替,最後的字符一定是數字.
    輸完上述命令回車之前,建議大家把瀏覽器還有別的運用程序都關掉,機器開始的工作比較艱苦。我的機器大概十幾分鍾。
    七、安裝內核
    編譯完成就是安裝工作。編譯好的內核在上一層目錄。包括linux-headers-...-_i386.deb和linux-image-...-i386.deb兩個文件,如果你不搞開發的話,只要安裝內核就可以,頭文件以後要用的時候再說。
    安裝相關命令:
    代碼:
    $ cd ..
    $ sudo dpkg -i   linux-image-(按tab鍵)
    文件名很長,如果不用tab自動補足是不可能的,tab鍵萬歲。
    安裝完成後和老內核比較一下大小
    代碼:
    $ ls -l /boot/
    八、重新啟動驗證新內核。
    代碼:
    $ sudo reboot
    九、顯卡驅動
    如果你的顯卡和我一樣是nvidia顯卡,啟動之後往往無法正常進入x-window。即使能看到gdm登錄界面,效果也是很差的。
    那麼就要安裝nvidia驅動。
    用ctrl+alt+f1 進入字符命令行,輸入用戶名,密碼登錄。
    命令:
    代碼:
    下載驅動
    $ wget http://us.download.nvidia.com/XFree86/Linux-x86/173.14.12/NVIDIA-Linux-x86-173.14.12-pkg1.run
    $sudo -s
    輸入密碼取得超級權限。
    #ps ax
    看看和gdm相關的進程,把這些進程全部關閉;用sudo /etc/init.d/gdm stop有可能有一個進程沒有關閉:
    #kill 進程號
    然後安裝nvidia顯卡驅動,當然驅動要先下好,到nvidia驅動所在的目錄裡,運行:
    # sh ./NVIDIA-Linux-x86-173.14.12-pkg1.run
    重新啟動以後就ok。要用nvidia的驅動,每次升級內核都要這麼做。
    十、無線網卡
    相關的內核選項是
    Networking --->
    Wireless --->
    Generic IEEE 802.11 Networking Stack (mac80211)
    還有4965的驅動。
    4965無線網卡驅動雖然已經編入內核,但沒有firmware無法使用。需要把原來內核的firmware拷貝到新內核對應的目錄,名字和內核一致,我 的內核是linux-image-2.6.25.10dell1400,那建的目錄名就是2.6.25.10dell1400。
    代碼:
    具體命令:
    $ cd /lib/firmware/
    $ sudo mkdir 2.6.25.10dell1400
    把你的老內核中的4965的firmware拷貝過來。
    $ sudo cp 2.6.24-16-generic/* 2.6.25.10dell1400/
    上面的命令和下面的命令是等價的:
    $ cd /lib/firmware/
    $ sudo cp -R 2.6.24-16-generic/  2.6.25.10dell1400/
    重新啟動系統,無線網卡就正常了。
    附編譯使用的機器配置:dell vostro 1400,t8100,nvidia 8400cs顯卡,內置SigmaTel STAC9228芯片的聲卡,4965無線網卡,BCM5906M千兆網卡,3G內存,160G硬盤,combo刻錄。
    編譯系統版本:ubuntu 8.04桌面版.


    延伸閱讀:
    1.配置並編譯內核[更新到linux-2.6.26]
    (繼續閱讀...)
    文章標籤

    正義的胖虎 發表在 痞客邦 留言(0) 人氣(8,587)

    • 個人分類:
    ▲top
    • 10月 07 週二 200823:13
    • Spamassassin的設定_啟動服務

    接著上一篇的Spamassass的安裝後,現在來啟動服務(不是裝好就能用...)
    上一篇有提到"Procmail"這個套件,現 在需要要它來呼叫spamassassin來過濾垃圾郵件。
    (之前看了很多篇spamassassin的設定都是直接把設定寫在Postfix設定檔裡,
    不過自己在做這一段時發現造成系統loading一直在95%以上,整台電腦好像快掛了...)
    製作Procmail的設定檔
    cp /etc/mail/spamassassin/spamassassin-spamc.rc /etc/procmailrc
    修改Spamassassin的設定檔
    pico /etc/mail/spamassassin/local.cf (因為有中文所以我用pico開)
    #多少分才判為 SPAM
    required_hits 5
    report_safe 1
    #若為 SPAM,是否設修改主旨
    rewrite_subject 1
    #修改主旨為 (當 rewrite_subject 是 1 的時候才會有用)
    rewrite_header Subject [SPAM]
    # Encapsulate spam in an attachment
    report_safe 1
    # Use terse version of the spam report
    use_terse_report 1
    # Enable the Bayes system
    use_bayes 1
    # Enable Bayes auto-learning
    auto_learn 1
    # Enable or disable network checks
    skip_rbl_checks 0
    use_razor2 1
    use_dcc 1
    use_pyzor 1
    # Mail using languages used in these country codes will not be marked
    # as being possibly spam in a foreign language.
    # - chinese english japanese
    ok_languages zh en ja
    # Mail using locales used in these country codes will not be marked
    # as being possibly spam in a foreign language.
    ok_locales en ja zh
    設定Postfix 的設定檔 指定使用"Procmail"為MDA
    vi /etc/postfix/main.cf
    找到#mailbox_command = /some/where/procmail -a "$EXTENSION" 這行
    修改成
    mailbox_command = /usr/bin/procmail -a "$EXTENSION"
    更改儲存郵件目錄的權限讓postfix透過procmail寫入郵件
    chmod 1777 /var/spool/mail
    最後把spamassass設為開機預設啟動的服務
    chkconfig spamassassin on
    把剛才做的設定restart 讓服務生效
    service spamassassin restart
    service postfix restart
    以上就是Spamassassin的安裝與設定,裝好後不代表就能開始過濾全部的垃圾郵件,還需要做一番進階的設定才能讓過濾的功能更完整
    (ex:嚴謹的過濾規則、黑&白名單的設定、自動學習功能...等)這部份的設定後續再補上(目前還沒做到那= =)。
    這邊是我參考的資料
    http://www.gentoo.tw/got-doc/spamassassin.xml
    http://wiki.debian.org.tw/index.php/SpamAssassin
    http://ms.ntcb.edu.tw/~steven/article/postfix_spam-spamassassin.htm
    (繼續閱讀...)
    文章標籤

    正義的胖虎 發表在 痞客邦 留言(0) 人氣(4,783)

    • 個人分類:
    ▲top
    • 10月 07 週二 200823:12
    • 安裝垃圾信過濾套件:Spamassassin

    我都忘了我以前有做過這個東西~
    本篇從我那早已變成廢墟的Blog那邊挖出來的~ 


    這是我目前在處理open webmail上的垃圾信問題所使用的spam filter
    系統環境如下:
    OS:Fedora 4
    mail: Postfix +open webmail
    安裝前先檢查一下系統內有沒有"Procmail"這個套件。
    再來就開始安裝spamassass,需要以下的套件並照順序安裝。
    (繼續閱讀...)
    文章標籤

    正義的胖虎 發表在 痞客邦 留言(0) 人氣(975)

    • 個人分類:
    ▲top
    • 10月 07 週二 200823:11
    • [教學] 客製化Linux -打造Linux無人值守光碟 (CentOS5版)


    本站的文章以轉貼的居多~
    自己寫的產量十分有限...不過這篇是我自己寫的唷~發表在樂多的blog上
    現在轉來這邊充一下版面的~


    最近在弄CentOS 5 的包裝,由於這個版本出來沒多久,
    請咕狗大神出來找相關文件都沒幾篇,
    http://lingxiang.tang.googlepages.com/customizecentos5
    上面這個是唯一找到標題就是講Centos5 custom的做法,試了半天
    還是弄不出來,剩下找到Centos5的custom文件都是跟我一樣有相同問題的人在論壇發問,不過都沒人鳥...Orz
    底下就是自己弄出來的結果
    首先
    準備一張 Centos5的DVD光碟,可到
    http://ftp.isu.edu.tw/pub/Linux/CentOS/5.0/isos/i386/
    下載ISo檔
    第二步
    準備一台電腦安裝Cntos5,安裝時把你要的套件都選一選。
    第三步
    安裝包裝Centos5時所需要的套件 anaconda
    anaconda
    anaconda-runtime
    如果不知道要怎麼裝的話可以直接使用
    yum install anaconda
    讓系統幫你裝到好~
    第四步
    裝好後,我的習慣是在另一台桌機上使用pietty用ssh連線登入到剛裝好的主機working~
    把CentOS光碟放到主機上,並mount起來,
    並 mkdir /CentOS5 <=這個用來包裝centos的目錄
    把光碟片的資料 cp 到剛才建立的 /CentOS5 目錄中
    第五步
    挑選需要的PRM檔案,在root家目錄中有一個install.log檔
    這個檔案記錄著,我們在安裝過程中所選擇的套件,
    所以我們要做的就是根據這個檔案,來替我們的Cntos5 DVD減肥
    (只留下安裝時選所的套件,其餘都刪除)
    之前我在做centos3.8 與FC3時都是使用現成的程式(
    getGroupPkgs.py & removePkgs.py)來做,但
    目前好像在centos5上好像不能使用(這點不確定)
    所以這個步驟自己手動來弄的話,是比較麻煩點
    以我的做法是
    把install.log 複製一份到自己的電腦裡面來(m$窗主機)
    使用PSPad來編輯檔案,裡面的檔案大概會跟下面的差不多
    正在安裝 libgcc - 4.1.1-52.el5.i386
    正在安裝 filesystem - 2.4.0-1.el5.centos.i386
    正在安裝 basesystem - 8.0-5.1.1.el5.centos.noarch
    ...以下省略...
    把上面這個用"搜尋"、"取代",的技巧
    變成下面這樣
    #!/bin/bash
    cp -a /mnt/CentOS/libgcc-4.1.1-52.el5.i386.rpm /myRPM
    ...以下省略...
    存成copyrpm.sh 丟回到Centos5主機裡,更改權限chmod +x copyrpm.sh
    並執行。
    ps:請先確認有無該目錄
    cp -a /mnt/CentOS/libgcc-4.1.1-52.el5.i386.rpm /myRPM
    像這行,我是把Centos5光碟mount 到/mnt
    並將RPM檔cp到/myRPM 這個目錄下,沒有的話請先建一個
    第六步
    cd /CentOS5/CentOS
    把這個目錄清空,把/myRPM目錄下的rpm全都cp過來
    cp -a /myRPM/* /CentOS5/CentOS
    第七步
    回到 /CentOS5 目錄下,執行createrepo這隻程式
    createrepo -g repodata/comps.xml .
    開始進行認套件的動作,通常如果出現以下的訊息
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Could not remove old metadata dir: .olddata
    Error was [Errno 39] Directory not empty: '/centos/.olddata'
    Please clean up this directory manually.
    請先刪掉.olddata 這個隱藏目錄。
    然後再執行一次
    createrepo -g repodata/comps.xml .  (2008/3/27更正 原 comp 改正 comps)
    第八步
    如果上面的步驟ok的話,把repodata 與CentOS 這兩個目錄
    連同/root/底下的anaconda-ks.cfg 給tar起來~下載到自己的m$窗主機裡面,
    用winrar把剛tar的檔案解壓縮。
    將anaconda-ks.cfg 改名 ks.cfg
    開UltraISO編輯器,打開Centos5的ISO檔,
    把剛解開的repodata 與Centos 兩個資料夾丟進去替換掉
    把ks.cfg放在光碟iso檔的根目錄上。
    打開isolinux資料夾裡isolinux.cfg
    改第一行default linux
    改成 =>default linux ks=cdrom:/ks.cfg
    改好後就可以直接燒錄了。此步驟也可以直接在CentOS5主機上直接操作,
    直接壓製ISO檔與燒錄。
    第九步
    把燒好的光碟片拿去安裝測試,成功的話就是一片自動安裝光碟了。
    以上的過程應該就只有第五步篩選套件比較麻煩點,這篇就先寫到這邊。
    附錄:我的ks.cfg檔內容
    install
    cdrom
    lang zh_TW.UTF-8
    langsupport --default en_US.UTF-8 en_US.UTF-8
    keyboard us
    mouse genericwheelps/2 --device psaux
    rootpw --iscrypted $1$Iph2iG2r$nbJzPHvxf5PnBMyBFmMjB/
    firewall --disabled
    selinux --disabled
    authconfig --enableshadow --enablemd5
    timezone Asia/Taipei
    bootloader --location=mbr
    clearpart --all --initlabel
    part /boot --fstype ext3 --size=100
    part swap --size=1024
    part / --fstype ext3 --size=100 --grow
    %packages
    @base
    @chinese-support
    @core
    @dialup
    @editors
    @text-internet
    -redhat-config-printer
    -redhat-config-printer-gui
    %post
    謝謝收看
    (繼續閱讀...)
    文章標籤

    正義的胖虎 發表在 痞客邦 留言(0) 人氣(4,141)

    • 個人分類:
    ▲top
    • 10月 07 週二 200823:11
    • [轉貼]php.ini設定檔中文說明


    這是中文的...


     
    ; 資料來源:yesoo.com 站長資訊論壇 http://11k.net/bbs/index.php?act=ST&f=1&t=1015
    ; 繁體翻譯:DC ∮Ω奧米加空間∮ http://omega.idv.tw/kdb120/
    ;;;;;;;;;;;;;;;;;;;
    ; PHP.INI中文說明 ;
    ;;;;;;;;;;;;;;;;;;;
    ; 這個檔案是PHP安裝的預設配置檔案.
    ; 預設設定下, PHP是以程式開發為目的,而不是為了其它目的!
    ; 由於PHP在應用在您的網站之前必須考慮一些安全問題,
    ; 所以請您參考php.ini-recommended(被推薦的)中相關參數的設定,
    ; 另外,您也可以在以下網站獲得幫助:http://php.net/manual/en/security.php.
    ;;;;;;;;;;;;;;;;
    ; 關於這個檔案 ;
    ;;;;;;;;;;;;;;;;
    ; 這個檔案控制著PHP的許多方面,為了能讓PHP正常讀取它,這個檔案必須被命名為"php.ini".
    ; PHP運行時依次在以下路徑中尋找這個檔案:目前工作目錄,環境變量PHPPRC指定路徑,編譯時
    ; 指定的路徑.
    ; 在Windows下,編譯時指定路徑就是Windows的安裝目錄,
    ; 在命令提示符下,可以用-c的參數來替代php.ini的查找路徑.
    ;
    ; 這個配置檔案的設定極其簡單. 以空白字元和分號開始的行被忽略(可能您已經想到了^_^),
    ; 雖然它們可能在將來有意義...
    ;
    ; 您在配置php.ini時,請使用以下的指定語法:
    ; 指示 = 值
    ; 注意:指示標識符是區分大小寫的,例如foo=bar和FOO=bar是不同的.
    ; 值可以是一個字元,一個數字,一個PHP常量(例如E_ALL和M_PI),
    ; 一個INI常量(例如On,Off,True,False,Yes,No和None),一個表達式(例如E_ALL & ~E_NOTICE),
    ; 或是用引號括起來的字元串(例如"foo").
    ;
    ; INI檔案中的表達式被限製為下面的運算符:
    ; | 代表 OR
    ; & 代表 AND
    ; ~ 代表 NOT(except)
    ; ! 代表 NOT
    ;
    ; 其中佈爾值可用1,On,True或Yes表示設為開的狀態,
    ; 可用0,Off,False或No表示設為關的狀態.
    ;
    ; 一個空字元串可以以在等號後不寫任何東西的方法表示,或者用None表示.例如:
    ;
    ; foo = ; 將foo值設定為空字元串
    ; foo = none ; 將foo值設定為空字元串
    ; foo = "none" ; 將foo值設定為字元串'none'
    ;
    ; 如果您在值設定中使用常量,並且這些常量屬於動態調入的擴展庫(PHP擴展或Zend擴展),
    ; 那麼,您只能在調入這些擴展庫之後再使用這些常量.
    ;
    ; 所有在 php.ini-dist 檔案裡設定的值與內建的預設值相同(就是說,如果 php.ini
    ; 沒被使用或者你刪掉了這些行,預設值與之相同).
    ;;;;;;;;;;;
    ; 語言選項;
    ;;;;;;;;;;;
    ; 是否使PHP腳本語言在Apache伺服器下有效.
    engine = On
    ; 是否允許使用<? ?>這種簡單的標識格式,當設定為Off時只有<?php ?>這種標識能被識別.
    short_open_tag = On
    ; 是否允許使用ASP風格的標識格式<% %>.
    asp_tags = Off
    ; 浮點類型數顯示時的有效位數.
    precision = 12
    ; 是否開啟2000年適應 (可能在非2000年適應的瀏覽器中導致問題).
    y2k_compliance = Off
    ; 輸出緩存允許你甚至在輸出正文內容之後發送header標頭(包括cookies), 但這樣會使速度有些下降.
    ; 您可以在運行時使用輸出緩存功能,也可以把output_buffering的值設為On使所有檔案的輸出緩存打
    ; 開.您也可以使用一個數值(單位是byte)作為輸出緩存上限,例如: output_buffering=4096.
    output_buffering = 4096
    ; 您可以把腳本輸出到一個函數,
    ; 字元編碼將會自動地轉換為您指定的編碼,這樣可能會對您處理以及記錄日誌有所幫助.
    ; 例如,如果您把 output_handler 設為 ob_iconv_handler,
    ; 輸出會為支援gzip或deflate編碼的瀏覽器設一個輸出處理器自動地開啟輸出緩衝.
    ;
    ; 說明: 您不必完全依照這個檔案中的設定去編寫腳本程式,相反地,您應該使用ob_start()函數
    ; 具體設定,如果您在不瞭解正在被執行的腳本的情況下使用這個INI檔案中的配置,就有
    ; 可能引起一些問題.
    ; 您不能同時使用"ob_gzhandler" 和 "zlib.output_compression".
    ;output_handler =
    ; 輸出會為支援壓縮使用了zlib庫
    ; 這個選項的有效值是'off','on',或者一個具體的值,預設值是4KB.
    ; 說明: 您可以增大數值來增加執行效率.
    ; 您必須使用zlib.output_handler來替代標準的output_handler否則輸出緩存會失效.
    ; .
    zlib.output_compression = Off
    ; 如果zlib.output_compression被設為On,您就不能再額外地指定輸出的值.
    ; 在不同在設定下,結果是一樣的.
    ;zlib.output_handler =
    ; 強制更新使PHP輸出層在每個輸出塊之後自動更新自身資料.
    ; 這等效於在執行每個print()或echo()或每個HTML塊後調用flush()函數.
    ; 開啟這項設定可能會在運行時導致嚴重的衝突,建議僅在debug過程中開啟.
    implicit_flush = Off
    ; 得到一個串行變量,並將其轉化為PHP值,可能為整型,雙精度,字元串,數組,或對像.
    ; 如果些函數發現了未定義的或類或參數,將會出現提示,如果您想使用這一函數,請設定
    ; 這個功能.
    unserialize_callback_func=
    ; 是否強迫函數調用時按引用傳遞參數,在將來的PHP/Zend中,這一功能很可能不會再被支援,
    ; 建議您把此項設為Off,並在腳本中用函數聲明此變量,以便在將來的PHP下正常運行.
    allow_call_time_pass_reference = Off
    ; 安全模式
    ; 是否啟用安全模式
    safe_mode = Off
    ; 預設設定為Off,在開啟檔案時,安全模式會作一個UID對比檢查,如果設定為On,則作GID對比.
    safe_mode_gid = Off
    ; 如果PHP在安全模式下運行,UID/GID檢查將在這個命令指定的檔案夾及其子檔案夾中進行.
    safe_mode_include_dir =
    ; 如果PHP在安全模式下運行,system()和其它執行系統程式的函數都只能執行這個指令所指定
    ; 的目錄
    safe_mode_exec_dir =
    ; 改變某些環境變量可能是一個有效的安全措施.
    ; 這個指令包括了一個含有符號的前綴.在安全模式下,會員只能改變或設定以這裡指定的前綴
    ; 的名字的環境變量.
    ; 說明: 如果不指定前綴,PHP會允許會員任意修改環境變量.
    safe_mode_allowed_env_vars = PHP_
    ; 這個指令包含了一個符號,使得會員不能使用putenv()函數修改環境變量.
    ; 即使safe_mode_allowed_env_vars設定為允許會員修改,這些環境變量也會受到保護.
    safe_mode_protected_env_vars = LD_LIBRARY_PATH
    ; 如果設定了open_basedir,將會使所有被定義的目錄及其子目錄的操作受到限制,這一指令在
    ; 每一個目錄和每一個虛擬主機構造檔案中著很大的作用.不論safe_mode被設定為On或是Off,
    ; 這個指令都不會受到任何影響.
    ;open_basedir =
    ; 這個指令允許您基於安全原因限制某些函數的使用.
    ; 如果您想禁用多個函數,可以在函數間用逗號隔開. 同樣地,
    ;不論safe_mode被設定為On或是Off,這個指令都不會受到任何影響.
    disable_functions =
    ; 語法以高亮度模式顯示的色彩.所有能被<font color="??????">接受的東西就可以運行.
    ;highlight.string = #DD0000
    ;highlight.comment = #FF9900
    ;highlight.keyword = #007700
    ;highlight.bg = #FFFFFF
    ;highlight.default = #0000BB
    ;highlight.html = #000000
    ;;;;;;;;;;;;
    ; 雜項設定 ;
    ;;;;;;;;;;;;
    ; 是否承認您的伺服器上安裝了PHP這一事實(例如通過附加簽名到WEB伺服器上)
    ; 這個指令不會引起安全問題,但它使檢查你的伺服器上是否安裝了PHP有了可能.
    expose_php = On
    ;;;;;;;;;;;;
    ; 資源限制 ;
    ;;;;;;;;;;;;
    max_execution_time = 15 ; 每個腳本的最大執行時間, 按秒計.
    max_input_time = 60    ; 每個腳本的最大讀取資料時間, 按秒計.
    memory_limit = 8M ; 一個腳本可使用記憶體的最大值 (這裡是8MB).
    ;;;;;;;;;;;;;;;;;;
    ; 錯誤控制和記錄 ;
    ;;;;;;;;;;;;;;;;;;
    ; 錯誤報告是按比特記的,或者將數字加起來得到想要的錯誤報告等級.
    ; E_ALL - 所有的錯誤和警告.
    ; E_ERROR - 運行時的嚴重錯誤.
    ; E_WARNING - 運行時的警告(並不是非常嚴重的).
    ; E_PARSE - 編譯時解析錯誤.
    ; E_NOTICE - 運行時提醒(這些經常是是你的代碼的bug引起的,
    ; 也可能是有意的行為造成的(如基於未初始化的變量自動初始化為一個
    ; 空字元串而使用一個未初始化的變量).
    ; E_CORE_ERROR - 發生於PHP啟動時初始化過程中的致命錯誤.
    ; E_CORE_WARNING - 發生於PHP啟動時初始化過程中的警告(非致命性錯).
    ; E_COMPILE_ERROR - 編譯時致命性錯誤.
    ; E_COMPILE_WARNING - 編譯時警告(非致命性錯).
    ; E_USER_ERROR - 會員產生的出錯消息.
    ; E_USER_WARNING - 會員產生的警告消息.
    ; E_USER_NOTICE - 會員產生的提醒消息.
    ;
    ; 例子:
    ;
    ; - error_reporting = E_ALL & ~E_NOTICE 顯示所有的錯誤,除了提醒.
    ;
    ; - error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR 僅顯示錯誤.
    ;
    error_reporting = E_ALL & ~E_NOTICE
    ; 顯示錯誤(作為輸出的一部分).在WEB網站上,建議您關掉這個功能,並用錯誤日誌的方式來代替.
    ; 如果開啟此功能可能會給您帶來安全問題,例如檔案在伺服器上的路徑和您的資料庫或其它訊息.
    ; 不過在Debug過程中,開啟此項會給調試程式帶來極大的方便.
    display_errors = On
    ; 如果display_startup_errors設定為Off,即使display_errors被設定成On,
    ; 在PHP啟動過程中的錯誤也不會被顯示.如果不是在Debug過程中,建議您關閉此項.
    display_startup_errors = On
    ; 在日誌檔案中記錄錯誤(伺服器日誌,stderr標準錯誤輸出, 或者error_log (下面的)).
    ; 正如上面說明的那樣,強烈建議你在最終發表的web網站時以日誌方式記錄錯誤.
    log_errors = Off
    ; 設定錯誤日誌檔案最大值.預設大小是1024M.
    log_errors_max_len = 1024
    ; 不記錄重複的訊息.在ignore_repeated_source被設為On前,重複的訊息一定發生在同一文
    ; 件的同一行
    ignore_repeated_errors = Off
    ; 忽略重複多次的訊息.如果ignore_repeated_source被設為On,您將不能記錄不同檔案或不同行
    的相同訊息.
    ignore_repeated_source = Off
    ; 如果此命令設為Off,記憶體溢出將不會被顯示.
    ; 而這只在Debug, 並且error reporting中包含E_WARNING時才有意義.
    report_memleaks = On
    ; 是否在$php_errormsg中存儲錯誤/警告訊息(布爾).
    track_errors = Off
    ; 是否在錯誤訊息中包含HTML語法錯誤.
    html_errors = On
    ; 如果您已經讓PHP記錄HTML錯誤,並想通過在錯誤頁面上的按這裡來獲得詳細訊息,
    ; 您可以從http://www.php.net/docs.php下載一個文件,
    ; 並且修改docref_root來使用這個文件,這個值必須以'/'開頭,您也必須指定該文件的副檔名.
    ;docref_root = /phpmanual/
    ;docref_ext = .html
    ; 在錯誤訊息輸出前的字元.
    ;error_prepend_string = "<font color=ff0000>"
    ; 在錯誤訊息輸出後的字元.
    ;error_append_string = "</font>"
    ; 用於記錄錯誤日誌的指定檔案.
    ;error_log = filename
    ; 用系統日誌記錄錯誤(NT,XP,w2k下的事件觀看器,WIN95和WIN98下無效).
    ;error_log = syslog
    ;;;;;;;;;;;;
    ; 資料處理 ;
    ;;;;;;;;;;;;
    ;
    ; 說明 - track_vars 在PHP 4.0.3中是一直啟動的
    ; 在PHP中分隔URL的符號,預設是 "&".
    ;arg_separator.output = "&amp;"
    ; 在變量中插入URL的分隔符號,預設是 "&".
    ; 說明: 任何字元在這裡都是作為分隔符的!
    ;arg_separator.input = ";&"
    ; 這條指示描述了PHP記錄GET,POST,Cookie,Environment和Built-in這些變量的順序.
    ; 以G,P,C,E和S代表,通常以EGPCS或GPC的方式引用,按從左到右記錄,最新的記錄覆蓋較舊的.
    variables_order = "EGPCS"
    ; 是否將這些 EGPCS 變量註冊為全局變量.
    ; 若你不想讓會員資料不在全局範圍內混亂的話,你可以想關閉它.
    ; 這和 track_vars 連起來用更有意義 — 這樣你可以通過$HTTP_*_VARS[] 數組瀏覽所有的GPC變量.
    ; 建議您儘量不使用全局變量,因為它有可能引起安全問題,所以這個指令是不被推薦的.
    register_globals = On
    ; 是否啟用argv和argc變量(這裡argv為數組,argc為變量數).
    ; 如果您不使用這些變量,您可以設為Off來增加PHP的執行效率.
    register_argc_argv = Off
    ; PHP能接收POST資料的最大值.
    post_max_size = 4M
    ; 不推薦您使用此指令,推您使用variables_order來代替.
    gpc_order = "GPC"
    ;;;;;;;;;;;;
    ; 魔術引用 ;
    ;;;;;;;;;;;;
    ; 是否對引入的GET/POST/Cookie資料啟用魔術引用.
    magic_quotes_gpc = On
    ; 是否對運行時產生的資料啟用魔術引用,例如用SQL搜尋得到的資料,用exec()函數得到的資料等.
    magic_quotes_runtime = Off
    ; 是否使用Sybase形式的魔術引用(即用'代替'').
    magic_quotes_sybase = On
    ; 在PHP文件前的後自動填加檔案.
    auto_prepend_file =
    auto_append_file =
    ; 像4.0b4一樣,PHP總是預設地在"Content-type:"頭標輸出一個字元的編碼方式
    ; 只要設定為空,就會取消這個字元了.PHP的內建預設值是text/html.
    default_mimetype = "text/html"
    ;default_charset = "iso-8859-1"
    ; 是否一直使用$HTTP_RAW_POST_DATA變量.
    always_populate_raw_post_data = Off
    ; 是否允許處理PHP腳本以外的HTTP請求.
    ; 如果您想獲得這些請求的資料, 您必須同時設定always_populate_raw_post_data變量.
    ;allow_webdav_methods = On
    ;;;;;;;;;;;;
    ; 路徑設定 ;
    ;;;;;;;;;;;;
    ; UNIX伺服器使用如下路徑: "/path1:/path2"
    ;include_path = ".:/php/includes"
    ;
    ; Windows伺服器使用如下路徑: "path1;path2"
    ;include_path = ".;c:phpincludes"
    ; PHP檔案的根目錄, 僅在非空時有效,如果PHP被設定為安全模式,PHP不會處理此目錄以外檔案.
    doc_root =
    ; 在使用/~username動工開啟腳本時,PHP尋找該腳本的路徑,同樣地僅在非空時有效.
    user_dir =
    ; 存放可加載的擴展庫(模塊)目錄的路徑.
    extension_dir = ./
    ; 是否啟用dl()函數.在多線程的服務上(如IIS和Zeus)dl()函數不能很好的工作,
    ; 在多線程服務上該指令預設被禁止.
    enable_dl = On
    ; 在很多伺服器上,以CGI形式運行PHP來提高安全性能.預設設定下,PHP設其為On.
    ; 您可以在這裡關掉它,但關掉以後是有風險的.但在IIS下您則可以毫無風險的關掉它,
    ; 事實上,在IIS下您必須關掉它.
    ; cgi.force_redirect = 1
    ; 如果cgi.force_redirect功能開啟,並且您不是在Apache或Netscape(iPlanet)伺服器下運行,
    您可能須要設定一個環境變量名,PHP將尋找此變量來確定可以繼續執行,設定此變量可能會引起
    安全問題,避免的方法是先弄清楚您在作什麼~~~
    ; cgi.redirect_status_env = ;
    ; 此選項提供了在IIS伺服器下的智能化安全解決風格,如果在IIS下請設為On,目前不支援Apache
    ; 伺服器(2002年3月17日),預設值是0.
    ; fastcgi.impersonate = 1;
    ; 在發送HTTP響應時cgi.rfc2616_headers告訴PHP使用哪種headers.
    ; 如果設為0,PHP的發送情況是被Apache所支援的,如果設為1,PHP將發送自適應的RFC2616headers.
    ; 在IIS下,請設其值為1,預設值是0.
    ;cgi.rfc2616_headers = 0
    ;;;;;;;;;;;;
    ; 檔案上傳 ;
    ;;;;;;;;;;;;
    ; 是否允許以HTTP方式上傳檔案.
    file_uploads = On
    ; 以HTTP方式上傳檔案的臨時目錄 (未指定時使用系統預設).
    ;upload_tmp_dir =
    ; 允許上傳檔案的最大值.
    upload_max_filesize = 2M
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Fopen wrappers(這個俺不會譯5555~) ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; 是否允許把URLs(如http://和ftp://)當作檔案處理.
    allow_url_fopen = On
    ; 指定一個匿名FTP瀏覽密碼(例如您的電子信箱)
    ;from="Neter@Neter.CN"
    ; 指定User-Agent字元串(User-Agent是啥呀?會員代理?55555555~)
    ; user_agent="PHP"
    ; 預設連接超時時間(以秒計).
    default_socket_timeout = 60
    ; 如果您的腳本程式不是在蘋果機等作業系統下,而只是運行在unix或者win32系統下,
    ; 開啟這個變量將使PHP自動地檢查已結束的那些字元變量以便fgets()函數和file()函數
    ; 不受限制的表達.
    ; auto_detect_line_endings = Off
    ;;;;;;;;;;;;
    ; 動態擴展 ;
    ;;;;;;;;;;;;
    ;
    ; 如果您想讓動態擴展庫能夠自動的被加載,請使用下面的語法.
    ;
    ; extension=modulename.extension
    ;
    ; 例如在Windows下:
    ;
    ; extension=msql.dll
    ;
    ; 在UNIX下:
    ;
    ; extension=msql.so
    ;
    ; 注意後面的值只是模塊的名字,並不包含該模塊所在的目錄,您應該用上面的extension_dir
    ; 來指示指定擴展庫的路徑.
    ;Windows擴展
    ;注意:PHP已經內建了對MySQL和ODBC支援,所以不必再為其配置任何dll擴展.
    ;
    ;extension=php_bz2.dll
    ;extension=php_cpdf.dll
    ;extension=php_crack.dll
    ;extension=php_curl.dll
    ;extension=php_db.dll
    ;extension=php_dba.dll
    ;extension=php_dbase.dll
    ;extension=php_dbx.dll
    ;extension=php_domxml.dll
    ;extension=php_exif.dll
    ;extension=php_fbsql.dll
    ;extension=php_fdf.dll
    ;extension=php_filepro.dll
    ;extension=php_gd.dll
    ;extension=php_gd2.dll
    ;extension=php_gettext.dll
    ;extension=php_hyperwave.dll
    ;extension=php_iconv.dll
    ;extension=php_ifx.dll
    ;extension=php_iisfunc.dll
    ;extension=php_imap.dll
    ;extension=php_interbase.dll
    ;extension=php_java.dll
    ;extension=php_ldap.dll
    ;extension=php_mbstring.dll
    ;extension=php_mcrypt.dll
    ;extension=php_mhash.dll
    ;extension=php_mime_magic.dll
    ;extension=php_ming.dll
    ;extension=php_mssql.dll
    ;extension=php_msql.dll
    ;extension=php_oci8.dll
    ;extension=php_openssl.dll
    ;extension=php_oracle.dll
    ;extension=php_pdf.dll
    ;extension=php_pgsql.dll
    ;extension=php_printer.dll
    ;extension=php_shmop.dll
    ;extension=php_snmp.dll
    ;extension=php_sockets.dll
    ;extension=php_sybase_ct.dll
    ;extension=php_w32api.dll
    ;extension=php_xmlrpc.dll
    ;extension=php_xslt.dll
    ;extension=php_yaz.dll
    ;extension=php_zip.dll
    ;;;;;;;;;;;;
    ; 模塊設定 ;
    ;;;;;;;;;;;;
    [系統日誌]
    ; 是否定義各種系統日誌變量(如$LOG_PID,$LOG_CRON等).關掉這個指令將會提高效率.
    ; 您可以在運行時使用define_syslog_variables()函數來定義這些變量.
    define_syslog_variables = Off
    [郵件功能]
    ; 僅在Windows下.
    SMTP = localhost
    ; 僅在Windows下.
    sendmail_from = Administrator@localhost.com
    ; 僅在Unix下.您也可以指定參數(預設值是: "sendmail -t -i").
    ;sendmail_path =
    [Java]
    ;java.class.path = .php_java.jar
    ;java.home = c:jdk
    ;java.library = c:jdkjreinhotspotjvm.dll
    ;java.library.path = .
    [SQL]
    sql.safe_mode = Off
    [ODBC]
    ;odbc.default_db = Not yet implemented
    ;odbc.default_user = Not yet implemented
    ;odbc.default_pw = Not yet implemented
    ; 是否允許持續連接.
    odbc.allow_persistent = On
    ; 是否在重用前檢查連接可用性.
    odbc.check_persistent = On
    ; 允許持續連接的最大值.-1代表無限制.
    odbc.max_persistent = -1
    ; 允許連接的最大值(持續連接和非持續連接的和).-1代表無限制.
    odbc.max_links = -1
    ; 控制LONG類型的字段.返回變量的大小(比特).0代表不控制.
    odbc.defaultlrl = 4096
    ; 控制二進制資料.0不控制,1保持,2轉換成字元.
    ; 可參見有關odbc_binmode和odbc_longreadlen的文件
    ; 以得到uodbc.defaultlrl和uodbc.defaultbinmode的解釋.
    odbc.defaultbinmode = 1
    [MySQL]
    ; 是否允許持續連接.
    mysql.allow_persistent = On
    ; 允許持續連接的最大值.-1代表無限制.
    mysql.max_persistent = -1
    ; 允許連接的最大值(持續連接和非持續連接的和).-1代表無限制.
    mysql.max_links = -1
    ; mysql_connect()函數的預設端口.如不設定,mysql_connect()將使用$MYSQL_TCP_PORT或者
    ; 在/etc/services下的mysql-tcp或者編譯定義的MYSQL_PORT(nuix)依次搜尋,而在Win32下,將
    ; 僅檢查MYSQL_PORT.
    mysql.default_port = 3306
    ; 用於本地MySql連接的預設socket,為空時,使用內建值.
    mysql.default_socket = MySql
    ; mysql_connect()連接的預設主機(安全模式下無效).
    mysql.default_host = localhost
    ; mysql_connect()連接時的預設會員名稱(安全模式下無效).
    mysql.default_user = root
    ; mysql_connect()連接時的預設密碼(安全模式下無效).
    ; 注意,在這裡使用密碼十分危險,因為任何有PHP權限的會員都可以通過運行'echo get_cfg_var("mysql.default_password")'
    ; 的方法來獲得該密碼,當然,任何有瀏覽權限的會員也可以得到此密碼.
    mysql.default_password =
    ; 連接超時的最大值(以秒計).-1代表無限制.
    mysql.connect_timeout = -1
    ; 鑑定報告模式.如果此模式被啟動(即設為On),關於table/index和MYSQL錯誤將會被列出.
    mysql.trace_mode = Off
    [mSQL]
    ; 是否允許持續連接.
    msql.allow_persistent = On
    ; 允許持續連接的最大值.-1代表無限制.
    msql.max_persistent = -1
    ; 允許連接最大值(持續連接與非持續連接的和).-1代表無限制.
    msql.max_links = -1
    [PostgresSQL]
    ; 是否允許持續連接.
    pgsql.allow_persistent = On
    ; 是否使用pg_pconnect()函數檢查中斷的持續連接.Need a little overhead(55555俺又不懂了).
    pgsql.auto_reset_persistent = Off
    ; 允許持續連接的最大值. -1代表無限制.
    pgsql.max_persistent = -1
    ; 允許連接的最大值(持續連接與非持續連接的和).-1代表無限制.
    pgsql.max_links = -1
    ; 是否忽略PostgreSQL的返回訊息.
    pgsql.ignore_notice = 0
    ; 是否記錄PostgreSQL的返回訊息.
    ; 僅當pgsql.ignore_notice=0時,模塊才能記錄該訊息.
    pgsql.log_notice = 0
    [Sybase]
    ; 是否允許持續連接.
    sybase.allow_persistent = On
    ; 允許持續連接的最大值.-1代表無限制.
    sybase.max_persistent = -1
    ; 允許連接的最大值(持續連接與非持續連接的和).-1代表無限制.
    sybase.max_links = -1
    ;sybase.interface_file = "/usr/sybase/interfaces"
    ; 顯示錯誤的最低嚴重性.
    sybase.min_error_severity = 10
    ; 顯示訊息的最低嚴重性.
    sybase.min_message_severity = 10
    ; 與舊的版本(PHP3.0)兼容.如果設為On,PHP將根據它們的Sybase類型自動地賦值到結果中,
    ; 而不是把它們全當作字元串處理,此模式在將來不再被支援,所以儘量對代碼進行修改,並
    ; 關掉這項.
    sybase.compatability_mode = Off
    [Sybase-CT]
    ; 是否允許持續的連接.
    sybct.allow_persistent = On
    ; 允許持續連接的最大值.-1代表無限制.
    sybct.max_persistent = -1
    ; 允許連接的最大值(持續連接與非持續連接的和).-1代表無限制.
    sybct.max_links = -1
    ; 伺服器訊息最小顯示量.
    sybct.min_server_severity = 10
    ; 客戶訊息最小顯示量.
    sybct.min_client_severity = 10
    [dbx]
    ; 通過對dbx.colnames_case的設定,返回的數組名能夠轉換成兼容的值.
    ; "unchanged" (在不設定時的預設值)
    ; "lowercase" (小寫)
    ; "uppercase" (大寫)
    ; 推薦不區分大小寫字母,但是由於兼容性的限制我們不得不把大小寫區分開.
    dbx.colnames_case = "unchanged"
    [bcmath]
    ; 用於所有bcmath函數的10十進制數小數的個數.
    bcmath.scale = 0
    [browscap]
    ;browscap = extra/browscap.ini
    [Informix]
    ; ifx_connect()的預設主機(安全模式下無效).
    ifx.default_host =
    ; ifx_connect()的預設會員(安全模式下無效).
    ifx.default_user =
    ; ifx_connect()的預設密碼(安全模式下無效).
    ifx.default_password =
    ; 是否允許持續連接.
    ifx.allow_persistent = On
    ; 允許持續連接的最大值.-1代表無限制.
    ifx.max_persistent = -1
    ; 允許連接的最大值(持續連接與非持續連接的和).-1代表無限制.
    ifx.max_links = -1
    ; 若開啟,select狀態符將返回一個byte blobs而不是它的ID.
    ifx.textasvarchar = 0
    ; 若開啟,select狀態符將返回一個text content而不是它的ID.
    ifx.byteasvarchar = 0
    ; 從固定長度的字元列裡分離出空格.可能對Informix SE會員有效.
    ifx.charasvarchar = 0
    ; 若開啟, text和byte blobs的內容被導出到一個檔案,而不是儲存在記憶體中.
    ifx.blobinfile = 0
    ; NULL(空)被作為空字段返回,除非,這裡被設為1,這種情況下(為1)NULL作為字串NULL返回.
    ifx.nullformat = 0
    [Session]
    ; 用於儲存/取得取資料的控制方式.
    session.save_handler = files
    ; session的儲存路徑.
    ; 說明1: PHP不會建立這個檔案夾,您必須自行建立.
    ;
    ; 說明2: 如果您使用子檔案夾進行存儲,請檢查下面的路徑.
    session.save_path = /tmp
    ; 是否使用cookies.
    session.use_cookies = 1
    ; 這個選項能夠使會員避免由於session名被作為URLs的一部分顯示而受到的攻擊.
    ; 預設值是0.
    ; session.use_only_cookies = 1
    ; session的名稱(同時作為cookie的名稱).
    session.name = PHPSESSID
    ; 是否在請求開始時初始化session.
    session.auto_start = 0
    ; cookie的儲存時間(以秒計),設為0時,瀏覽器關閉時不再儲存.
    session.cookie_lifetime = 0
    ; cookie的有效路徑.
    session.cookie_path = /
    ; cookie的有效域.
    session.cookie_domain =
    ; 控制連續的資料.PHP是PHP資料的標準控制器.
    session.serialize_handler = php
    ; 定義'garbage collection'(碎片整理)程序的初始化比率
    ; 這個比率是通過gc_probability/gc_dividend算出的.
    ; e.g. 1/100 means 1%.
    session.gc_probability = 1
    session.gc_dividend = 100
    ; 在指定的秒數後,存儲的資料將會被看作'碎片'並且被碎片整理程序清理掉.
    ; 警告: 您的檔案系統會定期的存儲資料,FAT系統除外.所以應該使用特別的方法來刪除sessions.
    session.gc_maxlifetime = 1440
    ; 說明: 如果您使用檔案夾來存儲session檔案(觀看session.save_path中的設定),
    ; 碎片整理不會自動的運行,您必須通過其它方法整理這些碎片.
    ; 例如下面的方法和把session.gc_maxlifetime設成1440(1440秒=24分)是等效的.
    ; cd /path/to/sessions; find -cmin +24 | xargs rm
    ; 在PHP4.2及更早的版本中沒有正式的檔案允許您初始一個處於全局的session變量,即使是在
    ; register_globals被禁用的情況下.PHP4.3及以後版本中,如果此功能被使用,PHP提醒您.
    ; 您可以對此功能和警告訊息單獨禁用,此時,如果bug_compat_42是啟動的,僅會顯示警告訊息.
    session.bug_compat_42 = 1
    session.bug_compat_warn = 1
    ; 檢查HTTP引用使額外包含於URLs中的ids無效.
    ; HTTP_REFERER應該包含有效的session字段作為子鏈.
    session.referer_check =
    ; 從檔案中讀取字元的大小.
    session.entropy_length = 0
    ; 在這裡指定session id.
    session.entropy_file =
    ;session.entropy_length = 16
    ;session.entropy_file = /dev/urandom
    ; 設定為{nocache,private,public,}來決定HTTP的緩存問題,
    ; 或者不進行設定來避免發送明顯的headers.
    session.cache_limiter = nocache
    ; 文件在指定時間(以分計)後過期.
    session.cache_expire = 180
    ; 預設情況下不支援過渡sid.使用此功能時您會收到警告訊息.
    ; 使用過渡sid是有風險的.因為:
    ;
    ; - 會員可以發送包含處於啟動狀態的session ID的URL給其它人.
    ;
    ; - 包含處於啟動狀態的session ID的URL會存在於容易接近的公共電腦裡.
    ;
    ; - 會員可以通過使用存儲於瀏覽器歷史記錄或書籤中相同的session ID來瀏覽您的網站.
    ;
    session.use_trans_sid = 0
    ; 重寫URL時將從定義的HTML標籤中尋找form/fieldset是特殊的,如果您在這裡使用它們,
    ; 就會附;加一個隱藏的<input>,其訊息不同與其它的對URLs的附加.如果您想符合XHTML,
    ; 刪除form記錄.注意:所有有效的命令必須包含一個"="號,即使命令後面沒有具體值.
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
    [MSSQL]
    ; 是否允許持續連接.
    mssql.allow_persistent = On
    ; 允許持續連接的最大值.-1表示無限制.
    mssql.max_persistent = -1
    ; 允許連接的最大值(持續連接與非持續連接的和).-1表示無限制.
    mssql.max_links = -1
    ; 顯示最小錯誤嚴重性.
    mssql.min_error_severity = 10
    ; 顯示最小訊息重要性.
    mssql.min_message_severity = 10
    ; 是否開啟與舊的PHP 3.0兼容的模式.
    mssql.compatability_mode = Off
    ; 有效範圍0 - 2147483647.預設值是4096.
    ;mssql.textlimit = 4096
    ; 有效範圍0 - 2147483647.預設值是4096.
    ;mssql.textsize = 4096
    ; 限制每一批中的記錄數量.設為0時表示所有記錄記錄在一批中.
    ;mssql.batchsize = 0
    ; 當連接到伺服器時使用NT驗證.
    mssql.secure_connection = Off
    ; 指定最大程序數.預設是25
    ;mssql.max_procs = 25
    [Assertion]
    ; Assert(expr);預設值是啟動的.(俺不行了,這組指令譯不過來了55555)
    ;assert.active = On
    ; Issue a PHP warning for each failed assertion.
    ;assert.warning = On
    ; Don't bail out by default.
    ;assert.bail = Off
    ; User-function to be called if an assertion fails.
    ;assert.callback = 0
    ; Eval the expression with current error_reporting(). Set to true if you want
    ; error_reporting(0) around the eval().
    ;assert.quiet_eval = 0
    [Ingres II]
    ; 是否允許持續連接.
    ingres.allow_persistent = On
    ; 允許持續連接在最大值. -1代表無限制.
    ingres.max_persistent = -1
    ; 允許連接的最大值.-1代表無限制.
    ingres.max_links = -1
    ; 預設的database(格式是: [node_id::]dbname[/srv_class]).
    ingres.default_database =
    ; 預設會員.
    ingres.default_user =
    ; 預設密碼.
    ingres.default_password =
    [Verisign Payflow Pro]
    ; 預設的Payflow Pro伺服器.
    pfpro.defaulthost = "test-payflow.verisign.com"
    ; 伺服器的預設端口.
    pfpro.defaultport = 443
    ; 預設的超時時間(以秒計).
    pfpro.defaulttimeout = 30
    ; 預設代理伺服器IP位址(如果須要).
    ;pfpro.proxyaddress =
    ; 預設代理伺服器端口.
    ;pfpro.proxyport =
    ; 預設的登入名.
    ;pfpro.proxylogon =
    ; 預設的登入密碼.
    ;pfpro.proxypassword =
    [Sockets]
    ; 是否使用系統的read()功能來替代php_read().
    sockets.use_system_read = On
    [com]
    ; 指向包含GUIDs,IIDs或典型靜態庫檔案的檔案名稱的檔案的路徑.
    ;com.typelib_file =
    ; 是否允許調用分佈式的COM檔案
    ;com.allow_dcom = true
    ; 是否自動把組成典型靜態庫檔案的常量註冊到com_load()函數.
    ;com.autoregister_typelib = true
    ; 是否區分常量的大小寫
    ;com.autoregister_casesensitive = false
    ; 是否在有重複的常量出現時顯示錯誤
    ;com.autoregister_verbose = true
    [Printer]
    ;printer.default_printer = ""
    [mbstring]
    ; 語言選擇.
    ;mbstring.language = Chinese
    ; 語言/腳本的編碼.
    ; 某些編碼不能作為本地的語言編碼,例如SJIS, BIG5, ISO-2022-.
    ;mbstring.internal_encoding = GB2312
    ; http輸入編碼.
    ;mbstring.http_input = auto
    ; http輸出編碼.mb_output_handler必須註冊為函數的輸出緩存.
    ;mbstring.http_output = SJIS
    ; 是否根據mbstring.internal_encoding的設定自動翻譯編碼. 把這項設為On可以把輸入字元
    ; 轉換為設定的編碼語言.
    ; 說明: 一定不要使用這項功能編譯靜態庫檔案和某些軟體.
    ;
    ;mbstring.encoding_translation = Off
    ; 編碼檢查順序.
    ;mbstring.detect_order = auto
    ; 當字元不能夠被轉換時,是否使用substitute_character.
    ;mbstring.substitute_character = none;
    ; 是否用加密的字元覆蓋沒有加密的字元.例如用mb_send_mail(), mb_ereg()覆蓋
    ; mail(), ereg()等.有效的值是0,1,2,4或者它們的組合.例如,7代表覆蓋全部.
    ; 0: 不覆蓋
    ; 1: 覆蓋mail()函數
    ; 2: 覆蓋str*()函數
    ; 4: 覆蓋ereg*()函數
    ;mbstring.func_overload = 0
    [FrontBase]
    ;fbsql.allow_persistent = On
    ;fbsql.autocommit = On
    ;fbsql.default_database =
    ;fbsql.default_database_password =
    ;fbsql.default_host =
    ;fbsql.default_password =
    ;fbsql.default_user = "_SYSTEM"
    ;fbsql.generate_warnings = Off
    ;fbsql.max_connections = 128
    ;fbsql.max_links = 128
    ;fbsql.max_persistent = -1
    ;fbsql.max_results = 128
    ;fbsql.batchSize = 1000
    [Crack]
    ; 修改下面的設定,使這與cracklib檔案夾的本地路徑相符合,只可以使用基本的檔案名稱,
    ; 不包含副檔名.
    ; crack.default_dictionary = "c:phplibcracklib_dict"
    [exif]
    ; 這組就不用譯了吧
    ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
    ; With mbstring support this will automatically be converted into the encoding
    ; given by corresponding encode setting. When empty mbstring.internal_encoding
    ; is used. For the decode settings you can distinguish between motorola and
    ; intel byte order. A decode setting cannot be empty.
    ;exif.encode_unicode = ISO-8859-15
    ;exif.decode_unicode_motorola = UCS-2BE
    ;exif.decode_unicode_intel = UCS-2LE
    ;exif.encode_jis =
    ;exif.decode_jis_motorola = JIS
    ;exif.decode_jis_intel = JIS
    ; Local Variables:
    ; tab-width: 4
    ; End:

    (繼續閱讀...)
    文章標籤

    正義的胖虎 發表在 痞客邦 留言(1) 人氣(5,398)

    • 個人分類:
    ▲top
    «1...23242528»

    請幫牠找個家

    我的噗浪

    小時鐘

    推文按鈕

    部落格文章搜尋

    個人頭像

    正義的胖虎
    暱稱:
    正義的胖虎
    分類:
    數位生活
    好友:
    累積中
    地區:

    參觀人氣

    • 本日人氣:
    • 累積人氣:

    近期文章

    • [WP] 修正媒體庫無法編輯圖片的問題
    • [心得] 三分鐘建置WordPress in GCP
    • [心得] 建立Docker管理工具:Portainer
    • [教學] 十分鐘建置ShadowSocks in GCP
    • [心得] 啟用Apache Rewrite功能
    • [心得] CentOS 6.8 + Let's Encrypt SSL +Apache + WordPress 全紀錄
    • [心得] Python爬蟲教學2018-抓取三大法人買賣金額_加強版
    • [心得] Python爬蟲教學2018-抓取三大法人買賣金額
    • [心得] 將Jupyter執行畫面嵌入WordPress
    • [心得] Python爬蟲教學2018-抓取台銀牌告匯率

    文章彙整

    文章分類

    • 未分類文章 (1)

    誰來我家