最近狀態不好,就這么一個東西,幾分鐘應該解決的問題,晚上竟然折騰了兩個小時,實在是不爽,看來有必要記錄一下,免得每次配置的時候總看那些注釋...今天實在是看差了一行..
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服務器,這里只說到了基本的配置,對于性能的優化以及其他功能的,請參考其他相關文章.如有錯誤請多多指教.
新聞熱點
疑難解答