PHP.INI 文件配置
PHP配置文件php.ini是影响PHP功能的最后和最直接的方式。每次PHP初始化时,都会读取php.ini文件,也就是说,无论是模块版本的httpd重启还是每次脚本执行的CGI版本。如果您的更改没有显示出来,请记得停止并重新启动httpd。如果仍然没有显示,请使用phpinfo()检查php.ini的路径。
配置文件有详细的注释。键是大小写敏感的,关键字值不区分大小写;空白和以分号开头的行将被忽略。布尔值可以表示为1/0、Yes/No、On/Off或True/False。php.ini-dist中的默认值将导致一个合理的PHP安装,稍后可以进行调整。
在这里,我们解释了php.ini中您可能需要的重要设置,以供PHP解析器使用。
short_open_tag = Off
短开标记的示例:<? ?>
。如果您想使用XML函数,此选项必须设置为Off。
safe_mode = Off
如果此选项设置为On,您可能使用–enable-safe-mode标志编译了PHP。Safe mode对CGI使用最为相关。可以在本章的“CGI编译时选项”一节中参考解释。
safe_mode_exec_dir = [DIR]
此选项仅在safe mode为开启时相关;在Unix构建过程中也可以使用--with-exec-dir
标志进行设置。在safe mode下,PHP仅在此目录执行外部二进制文件。默认值为/usr/local/bin
。这与提供正常的PHP/HTML网页无关。
safe_mode_allowed_env_vars = [PHP_]
此选项设置可以在safe mode下更改的环境变量。默认值仅为以“PHP_”开头的变量。如果此指令为空,大多数变量都是可变的。
safe_mode_protected_env_vars = [LD_LIBRARY_PATH]
此选项设置即使在safe_mode_allowed_env_vars被宽松设置时,用户也无法在safe mode下更改的环境变量。
disable_functions = [function1, function2…]
PHP4配置中的值得欢迎的添加,并在PHP5中延续的是禁用选定函数以增加安全性。以前,这需要手动编辑PHP的C代码。文件系统、系统和网络函数可能是首选禁用的函数,因为允许通过HTTP编写文件和更改系统并不安全。
max_execution_time = 30
函数set_time_limit()在safe mode下不起作用,因此这是在safe mode下使脚本超时的主要方式。在Windows中,您必须根据消耗的最大内存来中止,而不是根据时间。如果使用Apache,还可以使用Apache的超时设置来超时,但这也将应用于站点上的非PHP文件。
error_reporting = E_ALL & ~E_NOTICE
默认值是E_ALL & ~E_NOTICE,即除了注意事项以外的所有错误。开发服务器应该至少设置为默认值;只有生产服务器才应考虑使用较小的值。
error_prepend_string = [” “]
此设置与error_append_string一起,允许您将错误消息设置为与其他文本不同的颜色,或者其他特定设置。
warn_plus_overloading = Off
此设置在字符串中使用+运算符(例如表单值)时发出警告。
variables_order = EGPCS
此配置设置取代了gpc_order。现在,全局变量的注册已经废弃,同时也废弃了register_globals。它设置了不同变量的顺序:环境变量(Environment)、GET、POST、COOKIE、以及SERVER(即内置变量)。您可以改变这个顺序。变量将按从左到右的顺序相继覆盖,每次都以最右边的变量为准。这意味着,如果您保留了默认设置,并且恰好为环境变量、POST变量和COOKIE变量使用了相同的名称,那么在处理完成时,COOKIE变量将拥有该名称。在实际应用中,这种情况并不常见。
register_globals = Off
此设置允许您决定是否将EGPCS变量注册为全局变量。这种做法现在已经废弃,从PHP4.2开始,该标志默认为关闭。请使用超全局数组。本书中的所有主要代码列表都使用了超全局数组。
gpc_order = GPC
此设置已被GPC Deprected(不推荐使用)。
magic_quotes_gpc = On
此设置转义传入的GET/POST/COOKIE数据中的引号。如果您使用了大量可能将表单值提交给自身或其他表单并显示表单值的表单,您可能需要把此指令设置为开启,或者准备在字符串类型数据上使用addslashes()函数。
magic_quotes_runtime = Off
此设置转义传入的数据库和文本字符串中的引号。请记住,SQL在存储字符串时会在单引号和撇号上添加斜线,但在返回字符串时不会去除它们。如果此设置为关闭,则需要在从SQL数据库中输出任何类型的字符串数据时使用stripslashes()函数。如果magic_quotes_sybase设置为开启,此设置必须关闭。
magic_quotes_sybase = Off
此设置用Sybase风格的单引号转义传入的数据库和文本字符串中的单引号(而不是反斜杠)。如果magic_quotes_runtime设置为开启,此设置必须关闭。
auto-prepend-file = [path/to/file]
如果指定了路径,PHP必须在每个PHP文件的开头自动包含(include)它。此处还会应用include路径的限制。
auto-append-file = [path/to/file]
如果指定了路径,PHP必须在每个PHP文件的结尾自动包含(include)它,除非您使用exit()函数进行了跳出。此处还会应用include路径的限制。
include_path = [DIR]
如果设置了此值,您只能从这些目录中包含或引用文件。include目录通常位于文档根目录下;如果在安全模式下运行,则此设置是强制性的。如果要从与脚本相同目录中包含文件,则应将其设置为“.”。多个目录之间用冒号分隔:“.:/usr/local/apache/htdocs:/usr/local/lib”。
doc_root = [DIR]
如果您使用Apache,您已经在httpd.conf中为此服务器或虚拟主机设置了文档根目录。如果您正在使用安全模式,或者只想在站点的一部分(例如,Web根目录的一个子目录)启用PHP,则在这里设置此值。
file_uploads = [on/off]
如果您要使用PHP脚本上传文件,请打开此标志。
upload_tmp_dir = [DIR]
除非您理解通过HTTP上传的影响,否则请勿取消注释此行!
session.save-handler = files
除非在极少数情况下,您不会想要更改此设置。所以不要碰它。
ignore_user_abort = [On/Off]
此设置控制站点访问者点击浏览器的停止按钮时会发生什么。默认为On,这意味着脚本将继续运行直到完成或超时。如果将设置更改为Off,脚本将中止。此设置仅在模块模式下有效,而不是CGI。
mysql.default_host = hostname
如果未指定其他主机名,则连接到数据库服务器时要使用的默认服务器主机。
mysql.default_user = username
如果未指定其他用户名,则连接到数据库服务器时要使用的默认用户名。
mysql.default_password = password
如果未指定其他密码,则连接到数据库服务器时要使用的默认密码。