最近狀態不好,就這麼一個東西,幾分鐘應該解決的問題,晚上竟然折騰了兩個小時,實在是不爽,看來有必要記錄一下,免得每次配置的時候總看那些注釋...今天實在是看差了一行..
1) PHP配置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
這部分是錯誤處理與日誌error_reporting
由一些位的組合來管理記錄錯誤的類型,如果是用php.ini-disc的話,預設的選項為E_ALL & ~E_NOTICE,這一部分可以隨你的用途來設定,一般在編寫調試指令碼的時候我喜歡E_ALL,無論什麼時候,將一些警告當作錯誤處理是有好處的.
display_errors
預設為On,表示將符合error_reporting選項的錯誤輸出到頁面中,不過在正是發布運行之後,還是將其設定為Off,這也是這個選項注釋中的一個建議.原文如下:
; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
log_errors
預設為Off,作用是將符合error_reporting選項的錯誤記錄到檔案中(羅嗦了點,就是記錄檔),注釋中強烈建議你開啟這個選項,將錯誤記錄到檔案,而不是輸出到頁面中.
"you're strongly advised to use error logging in place of error displaying on production web sites."
log_errors_max_len
記錄檔的最大長度,預設為1024,0表示沒有限制..
error_log
預設是被注釋掉的,這個選項有兩個值,一種是filename,表示日誌所要記錄到的檔案;一種是syslog,表示記錄到系統的日誌中(注意:這個選項只對NT以上的系統起作用,對9x不起作用)
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
這一部分描述的是PHP資料處理的一些選項,有很多也與安全問題相關.
register_globals
預設為Off,這個選項的作用的討論是個古老的話題了,具體的就看個人習慣,方便是不假,但多少會對程式有些考驗.
magic_quotes_gpc
預設為On,不過我喜歡是Off,開啟會對sql injection有一定的妨礙,不過只是一定,不是徹底..具體可以見http://www.4ngel.net的相關文章.
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
一些路徑的設定(這裡假設你的php路徑為c:\php)
include_path
無論用或不用,我都設定成c:\php\pear,不過pear的功能還是很強大的..關於pear具體見http://pear.php.net
extension_dir
也不用多說什麼了,就設定成c:\php\extensions不會有什麼錯的.
cgi.force_redirect
預設為注釋掉,關於這個選項到底是做什麼用的,我現在也沒弄明白,不過使用apache的時候,保持預設就可以;對於IIS說明中要關閉此選項(設定為0).官方都這樣說了,照著做就可以.
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
檔案上傳相關設定
file_uploads
預設為On,表示啟用檔案上傳功能.可以根據自己的需求進行定製.
upload_tmp_dir
上傳檔案的臨時目錄,預設是注釋掉的,表示使用系統指定的臨時目錄,我喜歡自己指定一個單獨的目錄,至少得給一個寫的許可權.
upload_max_filesize
上傳檔案的大小,預設為2M.看個人的喜好了.
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
擴充,又是擴充,擴充是好東西,靈活方便.
格式為:extension=modulename.extension,例如extension=msql.dll(windows下),extension=msql.so(*nix下)
php中內建了很多的擴充,根據需要定製吧...對了,產生驗證碼有時候會需要調用gd2這個擴充,去掉前面的注釋總是沒錯的,這些擴充具體的功能請參考php手冊(http://www.php.net/docs.php).(注意:4.4.0裡面不包含gd庫,只有gd2)
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
模組設定
[MySQL]
大多數人都喜歡用MySQL,這裡如果需要的話,可以做下設定,但多數的情況還是取決於你的程式如何.
[Session]
Cookie和Session相關設定都在這裡了..安全問題也就不會少了,但還是一樣,取決於程式寫的如何.
session.save_path
session在伺服器中的儲存路徑,預設設定為空白.注意:如果你不建立這個目錄,PHP也不會自動建立此目錄,所以,還是咱自己動手來吧...否則總要蹦出一些警告資訊.
剩下還有些session有效時間的選項,自己看下手冊或注釋,按照自己的需要定製就可以.
到此,PHP的配置算是完成了,下面是APACHE 1.33的.
2)APACHE配置
這方面的文章說的很多,而且Apache手冊詳細到讓人懶的看的地步.這裡只說一下針對PHP需要做配置以及一些基本選項設定.這裡假設Apache和PHP的安裝路徑為C:\Apache和C:\PHP,WEB路徑為D:\wwwroot
ServerName
做為程式編寫與調試我喜歡設定為localhost
ServerRoot
Apache的安裝路徑,當然就為C:\Apache
DocumentRoot
WEB的主目錄,d:\wwwroot
ServerSignature Off
ServerTokens Prod
這兩個選項配合起來可以取消出錯時Apache顯示的banner.apache 1.33中沒有ServerTokens的注釋,不過可以在手冊中找到,詳細的解釋請參考手冊,這裡就不多說了.
下面說說針對PHP的配置:
基本上都是要添加的,找到相應位置,加進去即可.
LoadModule php4_module "c:/php/sapi/php4apache.dll"
AddModule mod_php4.c
DirectoryIndex index.php index.php3 index.htm index.html
AddType application/x-httpd-php .php
上面的配置是將PHP做為Apache的模組來運行,如果你需要以CGI的方式來運行,將上面LoadModule和AddModule去掉,在設定檔相應位置添加:
ScriptAlias /php/ "c:/php/"
Action application/x-httpd-php "/php/php.exe"
Apache的配置到此結束,之後可以用<?PHP phpinfo(); ?>來測試.
Apache是個強大的web伺服器,這裡只說到了基本的配置,對於效能的最佳化以及其他功能的,請參考其他相關文章.如有錯誤請多多指教.