日期:2012-08-14  浏览次数:20664 次

  最近状态不好,就这么一个东西,几分钟应该解决的问题,晚上竟然折腾了两个小时,实在是不爽,看来有必要记录一下,免得每次配置的时候总看那些注释...今天实在是看差了一行..

  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/"
Actio