最近状态不好,就这么一个东西,几分钟应该解决的问题,晚上竟然折腾了两个小时,实在是不爽,看来有必要记录一下,免得每次配置的时候总看那些注释...今天实在是看差了一行..
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的配置到此结束,之后可以用来测试.
Apache是个强大的web服务器,这里只说到了基本的配置,对于性能的优化以及其他功能的,请参考其他相关文章.如有错误请多多指教.