phpfreebsd
⑴ 有誰知道如何安裝配置安全的freeBSD還有php.ini怎麼配置
我的FreeBSD5.3配置筆記(相同於5.4\6.0)
接觸FreeBSD時間不長,我發現配置FreeBSD對於象我這樣的新手還是很有些困難,經過幾天的研究取得了一點進展,現在我的配置方法寫出來希望新手能少走一些彎路。
1.安裝完成配置xorg,命令如下:
#Xorg -configure
這時,當前目錄下就多了一個xorg.conf.new的文件,把它cp到/etc/X11/下:
#cp xorg.conf.new /etc/X11/xorg.conf
然後,編輯xorgcfg -textmode,修改一下屏幕的解析度.
2.啟動gnome
在用戶主目錄下創建.xinitrc文件,加入以下內容:
exec gnome-session
#startx 即進入gnome
3.啟動KDE
方法1:
在用戶主目錄下創建.xinitrc文件,加入以下內容:
exec startkde
方法2:
修改一下/usr/X11R6/1ib/X11/xinit/xinitrc文件
拉到文件最後...看到..twm了嗎...從這里起..後最後前面都加#吧..
然後加上一句:
startkde
方法3:
直接輸入
# echo "/usr/local/bin/startkde" >> ~/.xinitrc 就行了
4.打開聲音
修改/boot/defaults/loader.conf
將下面兩項的NO改為YES
sound_load="NO"
snd_driver_load="NO"
5.漢化圖形界面
1.安裝kde-i18n-zh_CN:
#cd /usr/ports/chinese/kde3-i18n-zh_CN
#make install clean
2.安裝字體
在/usr/X11R6/lib/X11/fonts/下建立TrueType目錄
將windows下的SIMSUN.TTC復制到TrueType目錄
雙擊SIMSUN.TTC,字體就安裝好了
3.更改語言環境為中國,簡體中文
4.在KDE的控制中心》外觀和主題》字體 中修改字體為SIMSUN
6.安裝fcitx輸入法
1.通過ports安裝fcitx
#cd /usr/ports/chinese/fcitx
#make install
2.修改~/.xinitrc,添加:
export LANG=zh_CN.eucCN
export LC_CTYPE=zh_CN.eucCN
export XMODIFIERS='@im=fcitx'
fcitx&
exec startkde
6.#qtconfig
然後選擇-->Interface--->XIM Input Style 選Over the Spot(上面的復選框也選上)-->File--Save
7.掛載windows分區並支持中文文件名
1.建立掛載點,在/mnt/下建立文件夾C,D,E,F
2.修改/etc/fstab文件,加入windows分區,並把分區掛載到剛才建好的目錄上,設置許可權為讀寫,語言為中文並自動掛載
/dev/ad0s1 /mnt/C msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s5 /mnt/D msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s6 /mnt/E msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s7 /mnt/F msdos rw,-L=zh_CN.eucCN,auto 0 0
8.激活滑鼠滾輪
修改/etc/xorg.conf
在"Mouse"中加入
Option "ZAxisMapping" "4 5"
保存推出,重啟X。
9.調整屏幕偏移
開個終端窗口運行xvidtune,調整好之後現不要退出,點一下那個「Show」按鈕,終端窗口中會顯示幾行類似於這樣的信息:
hsync range 0: 31.50 - 48.50
vsync range 0: 40.00 - 70.00
"1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
打開/etc/X11/XF86Config或者xorg.conf文件,找到Section "Monitor"段,在EndSection前面加入一行:
# 這里填入上面顯示的第3行信息,前面加上ModeLine
ModeLine "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
保存退出,重啟X。
FreeBSD配置:
更新FreeBSD
完成了安裝、配置,FreeBSD基本上就算裝完了。不過,目前為止沒有哪個通用操作系統能夠保證「bug-free」,FreeBSD也一樣。在重新啟動之後,我們需要做一些調整;並且,通過重新配置內核,我們可以得到一個更小、更快的操作系統。
第一步要做的是同步源代碼。FreeBSD是一套開放源代碼的操作系統,它的全部源代碼都可以通過cvsup與中央cvsup伺服器,或它的某個鏡像同步。
cvsup是一個可選的package,同樣的,它也可以從ports裡面安裝(/usr/ports/devel/cvsup和 /usr/ports/devel/cvsup-nogui)。考慮到許多應用程序都依賴X的庫文件,在前面安裝的部分我安裝了它,並且直接安裝了 cvsup的package。不過,如果你有足夠的耐心去一個一個地make需要的ports,那麼先安裝ports collection,然後make cvsup-nogui也是一個不錯的主意,盡管這需要比較長的時間。
創建一個用於cvsup(1)的supfile,命名為stable-supfile:
(default host中選定的cvsup伺服器——ftp.bjpu.e.cn對訪問的IP進行了限制,筆者只在北京工業大學校內使用過,因此如果您無法連接這個伺服器,請嘗試www.cn.freebsd.org,或cvsup.freebsd.org)
*default host=ftp.bjpu.e.cn
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
src-all
ports-all tag=.
隨後執行
cvsup -g -L 2 stable-supfile
這里需要稍微解釋一下FreeBSD的幾種版本。
FreeBSD包括3類分支:-RELEASE,-STABLE和-CURRENT。FreeBSD 3.x、4.x和5.0是目前受到維護的版本,如果你期待穩定運行,那麼,可以選擇的最新版本將是FreeBSD 4.6-STABLE(如果你是在4.6.2-RELEASE發行之後更新的,那麼它實際上比4.6.2-RELEASE新,並且,它正式的CVS tag是RELENG_4,即FreeBSD 4-STABLE)。
那麼,三類分支有什麼區別呢?
FreeBSD的開發是非常活躍的。系統中可能會隨時引入一些新的特性。最新的代碼是在-CURRENT分支中引入的。-CURRENT的修改非常頻繁,每天都可能有數百處修改。使用-CURRENT分支的FreeBSD需要耐心和勇氣,因為你的系統隨時可能崩潰(隨著FreeBSD 5.0開發尾聲的接近,這種現象已經越來越少),make world也可能空手而歸(沒有人保證-CURRENT分支能夠正常編譯),此外,這個分支的性能也不好(因為調試的原因,這個分支引入了大量的調試選項,這意味著運行速度不會太快)。當然,正像它的名字那樣,-CURRENT分支的版本也是最新的5.0,而且,一切FreeBSD的錯誤和漏洞的修正都是首先在-CURRENT分支引入的。目前,-CURRENT分支碩果僅存的只有FreeBSD 5-CURRENT(指定cvs tag時寫「.」),這個分支包括了FreeBSD 5.0開發的最新進展。
FreeBSD 5中將引入大量的新特性,包括核心級線程(目前FreeBSD中的線程支持僅限於用戶級線程,這在多處理器的環境下性能不夠好,當然,目前使用fork ()來支持的多進程線程模擬能夠提供類似核心級線程的功能,但並不是所有的程序員都知道如何使用fork)、完整的Soft Updates(這一變化將提供更好的文件系統性能,同時提供更好的穩定性),等等。如果你有快速的Internet連接,一台或一些空餘的機器(當然,不是生產用的伺服器),並且希望為FreeBSD的開發作貢獻,或者你關心操作系統的最新發展,那麼,-CURRENT分支是最好的選擇。此外,
由於-CURRENT分支性能不好、穩定性不夠等這些缺點,對於生產的伺服器來說,通常運行的應該是FreeBSD-STABLE。如同它的名字那樣, FreeBSD-STABLE的目的是「穩定地運行」。-CURRENT分支中的代碼,在經過一段時間(通常是7到90天,但安全更新屬於特例,通常會在幾個小時)的驗證之後,符合版本條件(有些新特性只能用於FreeBSD 5.0)的代碼會被FreeBSD-STABLE吸收,這個操作稱作MFC(Merge From -CURRENT,不是Microsoft Foundation Classes:P)。
由於FreeBSD 5.0的第一個RELEASE至今仍然沒有發布,因此,目前還沒有5.0-STABLE。目前,FreeBSD-STABLE有兩個版本,FreeBSD 3-STABLE和FreeBSD 4-STABLE,分別對應3.x和4.x的最新穩定版代碼(對應的cvs tag分別是RELENG_3和RELENG_4)。由於版本的更新換代,其中3.x的-STABLE正在逐漸消亡。FreeBSD-STABLE每天平均會修改10個左右的文件。
每隔一段時間,FreeBSD的發行工程組(Release Engineering Team)會對FreeBSD-STABLE的源代碼樹進行鎖定。這段時間(目前的規定是30天,之前還有30天准備)內,所有的MFC操作都需要發行工程組的批准,因此,FreeBSD-STABLE在這個階段基本不會引入任何新的特性。經過這段時間之後,發行工程組會在最後鎖定ports樹,並 build一份所有的package,之後,這份鎖定的-STABLE,可能經過若干RC(Release Candidate),被命名為RELEASE,並製作光碟發行。
顧名思義,-RELEASE的設計目標是「發行」。一個版本一旦RELEASE,那麼他的功能就不會再增加了。此後的所有維護的目標都只有一個,那就是絕對穩定。如果你和-RELEASE分支同步,那麼絕不會出現make無法通過的情況,而且,通常這也可以保證你的系統「絕對」穩定,因為它不會引入任何新功能(例如,4.6就是4.6,如果你想要4.6.2的功能,必須明確地指定4.6.2)。
目前,FreeBSD有很多RELEASE版本,它們的cvs tag如下。我個人建議使用最新的4.6.2-RELEASE。
對於多數人來說,-RELEASE是一個比較極端的選擇。無論何時出現版本升級,如果你想跟進,那都必須修改supfile,如果你選擇不跟進,那麼就可能造成ports工作異常。如果經常更新,-RELEASE可以保證操作系統本身的安全性,但同其他分支一樣,如果ports出了問題,那麼也得一塊 make,而既然這樣,還不如使用-STABLE。
如果你符合下面的條件,那麼RELEASE分支可能比-STABLE分支更適合你
* 你使用的軟體對於操作系統的變化非常敏感,比如,它只能FreeBSD 4.5,而無法在4.6上運行;同時,你不打算採用它的更新版本,或者它的作者拒絕更新
* 操作系統的更新對於你來說沒有任何意義,比如,你打算把FreeBSD當作一個相對固定的嵌入式操作系統來使用,例如,作為防火牆的一部分
* 更新會對你造成困擾,操作系統的絕大多數新特性對於你來說除了增加煩惱之外,不能帶來任何其他東西。
-並且,符合以下的全部條件-
* 你每天察看FreeBSD,以及使用的全部軟體的安全公告
* 你的Internet連接比較通暢
目前我本人維護的所有主機,除了作為防火牆的那台之外,使用的都是FreeBSD-STABLE。
一旦同步完源代碼,就應該對整個系統進行更新。如果你沒有每天察看安全公告的習慣,那就應該關心一下cvsup到底更新了哪些代碼。nectar是目前 FreeBSD的Security Officer。如果你發現他一下子更新了許多代碼,那麼對你來說立即make world和kernel很可能是必需的。
為了更新整個系統,在/usr/src中執行
make world
以及
make kernel KERNCONF=內核配置文件名
當然,也可以連起來執行:
make world kernel KERNCONF=內核配置文件名
如果你的計算機運行速度較慢,那麼,對於基本系統的更新(相當於不包括庫的一次world),可以用
make most
替代make world,但make world是一個不錯的主意,因為它能夠保證對C運行環境的改變應用到所有的程序中,如果修正的不是動態連接的C函數庫,那麼make world可以保證代碼的一致性。
make kernel是一個需要重新啟動的操作。如果你的make world修改了系統的關鍵服務,那麼最好也重新啟動一下。我很少有耐心看完make world和kernel的執行,根據系統的運行速度不同,這需要一個小時到一天的時間,而且,不是所有的SSH客戶端都能夠長時間正確的執行,例如, SecureCRT的多個版本都有內存泄漏問題。
為了解決這個問題,我用下面的命令來完成更新:
make world kernel KERNCONF=內核配置文件名 clean > /var/log/world,out && reboot &
這個命令能夠記錄更新的全過程,如果在什麼地方編譯失敗,你可以很快地找到原因。對於多數人來說,由於後面的&&,只需要察看uptime就能知道便以是否成功。
需要說明的是,FreeBSD的make world並不總能成功。有時需要修改一些環境變數才能成功完成make。為了保證make成功,在/usr/src中執行任何make操作之前,建議你看一眼UPDATING中是否有特殊的要求(這種要求並不是在FreeBSD Release的時候才會出現,很多時候他會在某個CURRENT中引入,然後隨著MFC進入-STABLE分支),並且,在進行大的版本升級之前(跨 RELEASE,甚至主版本號),首先執行下面的命令
mergemaster -p
並在make world之後執行
mergemaster -i
運行mergemaster腳本需要一定的Unix配置知識,不過,由於配置文件中包含很多幫助信息,因此,只要master.passwd、group 這樣的文件不出大問題(如果cvsup更新了master.passwd,那麼就需要留神,因為master.passwd標准配置是root口令為空,這時需要用m來合並,而不是使用i安裝),mergemaster並不會引入什麼新的問題。
前一條命令是更新make的配置(/etc/defaults/make.conf和/etc/make.conf)。對於多數人來說,除非進行跨版本升級,否則一般情況下是不需要這樣做的。後一條命令是同步全部配置,並安裝以前不存在的配置文件,而不進行提示。
筆者曾經遇到過FreeBSD因為系統日期不正確而無法make的情況,因此,再次特別提醒大家,如果你的系統日期不正確,最好是用date命令修改一下,或者乾脆用ntpdate或ntpd來同步時間。關於如何使用ntp,將在以後說明。
以後我們將講解FreeBSD內核的配置,以及如何配置make.conf來優化FreeBSD的編譯結果。
「簡單的東西不容易出問題。」
至理名言!事實上,削減操作系統中那些對你沒用的功能是一件非常重要的事情。這不僅僅意味著一個更小的操作系統,佔用更少的磁碟空間(現在的硬碟少說也有幾十GB,幾兆的空間根本就是九牛一毛),而且意味著你被攻擊的可能性也更低——簡而言之,你不需要擔心操作系統中沒有安裝的模塊存在問題會對你造成影響。
這篇文章中,我們將一起對FreeBSD-i386的內核進行優化配置。這篇文章是針對FreeBSD4.7-STABLE寫的,並且,FreeBSD 4.x的配置不會和這篇文章有太大出入。如果你要優化FreeBSD 5或FreeBSD 2/3的內核的話,則需要仔細參考它們的LINT文件了(後面將會提到)。
[注意:FreeBSD 5.0預定將於2002年11月20日發布。FreeBSD的開發組非常重視發行版本的質量,並認為這比發行版本的計劃還重要,但由於同樣的原因,我們往往會發現FreeBSD實際發行的版本比預定計劃晚一些,通常在半個月之內。FreeBSD 5.0作為FreeBSD近期最為重要的發行版本,很可能也會延後發表,但筆者個人認為無論如何我們在今年年底之前肯定是可以看到最終的發行版本的。 FreeBSD 5.0對系統進行了大量的修改,這一系列的文章將在FreeBSD 5.0發布當天發表針對5.0的修訂版本,而現有版本將保留,但進入維護階段,不再引入新的內容。]
FreeBSD的源代碼可以直接從中央cvsup伺服器同步,也可以作為系統的一部分在安裝的時候一兵裝上。前面已經說過如何同步源代碼,在此不再贅述。 FreeBSD的源代碼(通常在/usr/src)包含建造基本系統的全部代碼,而在/usr/src/sys中則有若干個目錄,對應不同的計算機體系結構(4.x只支持i386和alpha)。i386是一個泛指的名字,包含了與Intel 80386兼容的所有機器,並不是特指80386。
簡單介紹一下FreeBSD的內核文件。在4.x系統中,/kernel這個文件是默認的內核,通常正常啟動使用的就是它。 /kernel.GENERIC這個文件是兼容性較強的內核,如果/kernel無法引導系統,就得靠這個文件來引導。/kernel.old是本次make kernel之前的內核,通常如果你的kernel壞掉,也可以考慮使用/kernel.old來引導系統。
/moles/是內核的模塊,而/moles.old/是對應/kernel.old的模塊。這些文件在每次替換kernel的時候都會同時替換。
在5.0中,內核以及內核的模塊都被保存在/boot/kernel中。
在/usr/src/sys/i386/conf中有兩個配置文件,GENERIC和LINT。其中GENERIC是make kernel的默認配置文件,直接make kernel生成的是GENERIC內核,但安裝時命名為/kernel。系統在安裝時會安裝一個kernel.GENERIC,以後,這個文件不會跟隨系統的make kernel更新,因此,如果你認為這個文件有必要更新的話,需要手工make kernel,並把/kernel改名為kernel.GENERIC。當然,通常並不需要這樣做。
LINT是包括幾乎所有內核編譯配置詳細信息的文件。這個配置並不是用來真正建立kernel的,他的主要用途是向用戶展示可用的內核編譯配置。在修改內核編譯配置時,最好先參考這個文件。
為了配置自己的內核,應將GENERIC復制為一個另外的文件。習慣上這個文件和主機名相同。例如,我把自己的這台Web機器命名為apache.intranet.frontfree.net,就把配置文件命名為APACHE:
cd /usr/src/sys/i386/conf
cp GENERIC APACHE
隨後,用ee APACHE編輯它。我們拿一個實際的GENERIC文件來說明。
為了節省篇幅,這個文件頭上的注釋被刪掉了一部分。
machine i386 # 體系模型為i386
cpu I386_CPU # 支持80386
cpu I486_CPU # 支持80486
cpu I586_CPU # 支持Pentium
cpu I686_CPU # 支持Pentium Pro以及更高
ident GENERIC # 內核文件的名字
maxusers 0 # 自動檢測同時允許的最大用戶數
#makeoptions DEBUG=-g # 包含調試符號。通常只有current版本打開
options MATH_EMULATE #支持協處理器模擬
options INET #支持互聯網
options INET6 #IPv6通訊協議
options FFS #伯克利快速文件系統
options FFS_ROOT #FFS作為根設備[必須保留]
options SOFTUPDATES #打開FFS soft updates支持
options UFS_DIRHASH #提高大型目錄的支持
options MFS #內存文件系統
options MD_ROOT #MD作為根設備
options NFS #Network Filesystem
options NFS_ROOT #NFS作為根設備(需要NFS)
options MSDOSFS #MSDOS文件系統
options CD9660 #ISO 9660文件系統(光碟)
options CD9660_ROOT #CD-ROM作為根設備(需要CD9660)
options PROCFS #進程文件系統
options COMPAT_43 #兼容4.3BSD[必須保留]
options SCSI_DELAY=15000 #檢測SCSI設備前的延時(ms)
options UCONSOLE #用戶可以奪取控制台
options USERCONFIG #boot -c編輯器 editor
options VISUAL_USERCONFIG #菜單式boot -c編輯器
options KTRACE #ktrace(1)支持
options SYSVSHM #SYSV-風格的共享內存
options SYSVMSG #SYSV-風格的消息隊列
options SYSVSEM #SYSV-風格的信號量(semaphores)
options P1003_1B #Posix P1003_1B實時擴展
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM #對惡意ICMP請求進行限制
options KBD_INSTALL_CDEV # 在/dev安裝一個CDEV設備
# 下面兩項在製作對稱多處理器(SMP)內核時需要
#options SMP #對稱多處理器內核
#options APIC_IO #對稱(APIC) I/O
device isa
device eisa
device pci
# 軟碟機
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1
#
# 如果使用東芝Libretto以及他的Y-E Y-E Data PCMCIA軟碟機
# 不要使用上面的fdc0,而應使用
#device fdc0
# ATA以及ATAPI設備
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk # ATA 磁碟驅動器(IDE硬碟)
device atapicd # ATAPI 光碟機
device atapifd # ATAPI 軟碟機
device atapist # ATAPI 磁帶機
options ATA_STATIC_ID #靜態設備編號
# SCSI控制器
device ahb # EISA AHA1742 family
device ahc # AHA2940 板載AIC7xxx設備
device amd # AMD 53C974 (Tekram DC-390(T))
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (較新的晶元組)
options SYM_SETUP_LP_PROBE_MAP=0x40
# 使用ncr可以在配置了sym和ncr的情況下掛接舊的NCR設備
device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
# SCSI 外設
device scbus # SCSI 匯流排(如果使用SCSI設備,必須有)
device da # Direct Access (硬碟)
device sa # Sequential Access (磁帶,等等)
device cd # CD
device pass # Passthrough device (直接 SCSI 訪問)
# 通過SCSI子系統介面的RAID控制器
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device dpt # DPT Smartcache - See LINT for options!
device iir # Intel Integrated RAID
device mly # Mylex AcceleRAID/eXtremeRAID
device ciss # Compaq SmartRAID 5* series
# RAID控制器
device aac # Adaptec FSA RAID, Dell PERC2/PERC3
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 family
device twe # 3ware Escalade
# atkbdc0 控制鍵盤和PS/2滑鼠
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12
device vga0 at isa?
# 啟動畫面和屏幕保護程序
pseudo-device splash
# syscons 是默認的控制台驅動,類似SCO控制台
device sc0 at isa? flags 0x100
# 對於pcvt vt220控制台,啟用這個和PCVT_FREEBSD
#device vt0 at isa?
#options XSERVER # 在vt控制台支持X伺服器
#options FAT_CURSOR # 使用大游標
# 如果你是用ThinkPad,將下面的一行和其他PCVT相關設備的注釋去掉
#options PCVT_SCANSET=2 # IBM使用非標准鍵盤
# 浮點運算支持 - 請勿禁用
device npx0 at nexus? port IO_NPX irq 13
# 電源管理支持
device apm0 at nexus? disable flags 0x20 # Advanced Power Management
# PCCARD (PCMCIA) 支持
device card
device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable
# 串口(COM)
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9
# 並口
device ppc0 at isa? irq 7
device ppbus # 並口匯流排 (所有並口設備都需要)
device lpt # 列印機
device plip # 並口TCP/IP
device ppi # 並口介面設備
#device vpo # 需要scbus和da
# PCI 乙太網適配器
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman'')
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')
# 使用公共的MII匯流排控制器代碼的PCI乙太網適配器
# 注意:一定要保留'device miibus'以確保可用
device miibus # MII匯流排支持
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device pcn # AMD Am79C97x PCI 10/100 NICs
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
device bge # Broadcom BCM570x (``Tigon III'')
# ISA乙太網適配器
# 'device ed' 需要 'device miibus'
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ex
device ep
device fe0 at isa? port 0x300
# Xircom Ethernet
device xe
# PRISM I IEEE 802.11b wireless NIC.
device awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
#device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
# 偽設備 - 數字表示分配多少個
pseudo-device loop # 環回網路
pseudo-de
⑵ 鎴戠殑freebsd緋葷粺涓婲ginx PHP鎻愮ず鍑虹幇The page you are looking for is temporarily unavailable閿欒
1.鍏堟鏌PHP FastCGI榪涚▼鏁版槸鍚﹀熺敤錛
netstat -anpo|grep 鈥減hp-cgi鈥潀wc -l
濡傛灉杈撳嚭涓0鐨勮瘽錛屽垯琛ㄧずFastCGI 榪涚▼鏁板熷ぇ錛
2.姝ゆ椂鍒欎慨鏀箂cgi_params鏂囦歡錛屾壘鍒幫細
scgi_param SCGI 1;
鎶婂畠鏀逛負錛
scgi_param SCGI 5;
3.PHP紼嬪簭濡傛灉鐨勬墽琛屾椂闂磋秴榪囦簡Nginx鐨勭瓑寰呮椂闂達紝灝卞彲閫傚綋鍦板炲姞nginx.conf閰嶇疆鏂囦歡涓璅astCGI鐨則imeout鏃墮棿錛屼緥濡傦細
http
{
鈥︹
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k
fastcgi_buffers 4 64k
鈥︹
}
4.閲嶅惎FastCGI
鍏堟潃鎺夎繘紼嬶細# pkill -9 php-cgi
鐒跺悗閲嶅惎錛# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi
5.閲嶅惎Nginx
鍏堟潃鎺夎繘紼:# killall -9 nginx
鐒跺悗閲嶅惎錛# /usr/local/sbin/nginx
鍏跺畠鍙鑳芥儏鍐碉細
1)璁塊棶浠繪剰PHP鏂囦歡錛屽嚭鐜
The page you are looking for is temporarily unavailable.
Please try again later.
2)璁塊棶html欏甸潰錛屾e父
鍘熷洜:
nginx涓嶈兘姝e父閫氳繃FastCGI緇撴灉璁塊棶PHP
1)濡傛灉鏄浠tcp socket褰㈠紡錛屽彲鑳芥槸榪涚▼鐢ㄦ埛鏉冮檺璁劇疆寰椾笉瀵
spawn-fcgi -a 127.0.0.1 -p 9000 -C 2 -u www-data -g www-data -f /usr/bin/php-cgi
鍙浠ユ敼涓 www-data 鎴栬 nobody, 閲嶅惎php-cgi榪涚▼
2)濡傛灉鏄痷nix socket,鍙鑳 socket鏂囦歡鏉冮檺娌℃湁鍐欏叆鑳藉姏
srwxrwxr-x 1 gavin gavin 0 11-12 10:18 php-fcgi.sock
涓哄叾浠栫敤鎴鋒坊鍔犲啓鍏ヨ兘鍔
chmod o+w php-fcgi.sock