PHP.INI配置文件


PHP.INI文件配置

PHP配置文件php.ini是影响PHP功能的最终直接方式。每次初始化PHP时都会读取php.ini文件。换句话说,httpd重新启动模块版本或CGI版本的每个脚本执行。如果您的更改未显示,请记住停止并重新启动httpd。如果它仍未显示,请使用phpinfo()检查php.ini的路径。

配置文件评论和透彻。键区分大小写,关键字值不区分大小写; 空格,以分号开头的行将被忽略。布尔值可以用1/0,是/否,开/关或真/假来表示。php.ini-dist中的默认值将导致合理的PHP安装,以后可以调整。

这里我们解释php.ini中您可能需要PHP Parser的重要设置。

short_open_tag = Off

短开标签看起来像这样:<? ?>。如果要使用XML函数,则必须将此选项设置为 Off

safe_mode = Off

如果将其设置为ON,则可能使用--enable-safe-mode标志编译PHP。安全模式与CGI使用最相关。请参阅本章前面给出的“CGI编译时选项”一节中的说明。

safe_mode_exec_dir = [DIR]

仅当安全模式为ON时,此选项才有意义; 它也可以在Unix构建过程中使用--with-exec-dir标志进行设置。安全模式下的PHP只执行此目录之外的外部二进制文件。默认值为/usr/local/bin。这与提供普通的PHP/HTML网页无关。

safe_mode_allowed_envvars = [PHP]

此选项设置用户可以在安全模式下更改的环境变量。默认值只是前缀为“PHP_”的变量。如果该指令为空,则大多数变量都是可变的。

safe_mode_protected_env_vars = [LD_LIBRARY_PATH]

此选项设置用户在安全模式下无法更改的环境变量,即使设置了safe_mode_allowed_env_vars也是如此。

disable_functions = [function1,function2 ...]

PHP4配置的一个受欢迎的补充和在PHP5中延续的一个是出于安全原因禁用所选功能的能力。以前,这需要手工编辑PHP的C代码。文件系统,系统和网络功能应该是第一个去的,因为允许编写文件和通过HTTP改变系统的能力从来都不是一个安全的想法。

max_execution_time = 30

函数set_time_limit()不能在安全模式下工作。因此,这是使脚本在安全模式下超时的主要方法。在Windows中,您必须根据消耗的最大内存而不是时间来中止。您还可以使用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起,默认情况下此标志设置为 Off 。请改用超全局数组。本书中的所有主要代码清单都使用超全局数组。

gpc_order = GPC

此设置已弃用。

magic_quotes_gpc = On

此设置会转义传入的GET/POST/COOKIE数据中的引号。如果您使用许多可能提交给自己或其他表单并显示表单值的表单,则可能需要将此指令设置为On或准备对字符串类型数据使用addslashes()。

magic_quotes_runtime = Off

此设置会转义传入数据库和文本字符串中的引号。请记住,SQL在存储字符串时会为单引号和撇号添加斜杠,并且在返回时不会将其删除。如果此设置为Off,则在从SQL数据库输出任何类型的字符串数据时,您将需要使用stripslashes()。如果magic_quotes_sybase设置为On,则必须为Off。

magic_quotes_sybase = Off

此设置使用Sybase样式的单引号而不是反斜杠转义传入数据库和文本字符串中的单引号。如果magic_quotes_runtime设置为On,则必须为Off。

auto-prepend-file = [path/to/file]

如果在此指定了路径,PHP必须在每个PHP文件的开头自动include()它。包含路径限制确实适用。

auto-append-file = [path/to/file]

如果在此处指定了路径,则PHP必须在每个PHP文件的末尾自动include(),除非您使用exit()函数进行转义。包含路径限制确实适用。

include_path = [DIR]

如果设置此值,则只允许包含或要求这些目录中的文件。include目录通常位于文档根目录下。如果您以安全模式运行,则必须执行此操作。将其设置为.in,以包含脚本所在目录中的文件。多个目录由冒号分隔:。:/usr/local/apache/htdocs:/usr/local/lib。

doc_root = [DIR]

如果您使用的是Apache,则已在httpd.conf中为此服务器或虚拟主机设置了文档根目录。如果您使用的是安全模式,或者只想在站点的一部分上启用PHP(例如,仅在Web根目录的一个子目录中),请在此处设置此值。

file_uploads = [on/off]

如果要使用PHP脚本上传文件,请启用此标志。

upload_tmp_dir = [DIR]

除非您了解HTTP上传的含义,否则请勿取消注释此行!

session.save-handler = files

除极少数情况外,您不希望更改此设置。所以不要碰它。

ignore_user_abort = [On/Off]

此设置控制站点访问者单击浏览器的“停止”按钮时发生的情况。默认值为On,表示脚本继续运行直到完成或超时。如果将设置更改为“关”,则脚本将中止。此设置仅适用于模块模式,而不适用于CGI。

mysql.default_host = hostname

如果未指定其他主机,则在连接到数据库服务器时使用的默认服务器主机。

mysql.default_user = username

如果未指定其他名称,则在连接到数据库服务器时使用的默认用户名。

mysql.default_password = password

如果未指定其他密码,则在连接到数据库服务器时使用的默认密码。