最近状态不好,就这么一个东西,几分钟应该解决的问题,晚上竟然折腾了两个小时,实在是不爽,看来有必要记录一下,免得每次配置的时候总看那些注释...今天实在是看差了一行..
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
サーバー内のセッションの保存パスはデフォルトでは空です。 注: このディレクトリを作成しない場合、PHP はこのディレクトリを自動的に作成しません。そのため、自分で作成することをお勧めします。そうしないと、常に作成されてしまいます。いくつかの警告メッセージが表示されます。
セッション有効期間のオプションがまだ残っています。マニュアルまたはコメントを読んで、必要に応じてカスタマイズしてください。
この時点で、APACHE の設定は完了です。 1.33.
2) APACHE の設定
これについては多くの記事があり、Apache のマニュアルは読むのが面倒になるのでここに記載します。ここでは PHP の構成についてのみ説明し、いくつかの基本的なオプション設定が必要です。ここでは、Apache と PHP のインストール パスが C:Apache と C:PHP であり、WEB パスが D:wwwroot
ServerName
を使用し、デバッグの場合は、localhostServerRootApache のインストール パス (もちろん C: Apache) に設定するのが好きです。 DocumentRootWEB のホーム ディレクトリ、d: wwwrootServerSignature OffServerTokens Prod
LoadModule php4_module "c:/php/sapi/php4apache.dll"
AddModule mod_php4.c
DirectoryIndexindex.phpindex.php3index.htmindex.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 は強力な Web サーバーです。ここでは、基本的な構成についてのみ説明します。パフォーマンスの最適化やその他の機能については、他の関連記事を参照してください。間違いがある場合はお知らせください。