PHP - PHP.INI 文件配置


在计算机上安装 PHP 软件时,将在安装目录中创建 php.ini。对于 XAMPPphp.ini 位于 c:\xamm\php 文件夹中。它是一个重要的配置文件,用于控制性能并设置所有与 PHP 相关的参数。

phpinfo() 函数显示 PHPAacheMySQL Web 服务器安装的其他部分的不同参数及其当前值的列表。

运行以下代码以显示设置,其中一个设置显示“php.ini”文件的路径:


<?php
   echo phpinfo();
?>

加载配置文件

找到显示文件位置的加载配置文件设置 php.ini

 C:\xampp\php\php.ini

PHP 行为的不同方面由大量参数(称为指令)配置。“php.ini”文件附带大部分以分号( ) 符号开头的行 - 表示该行已注释。未注释的行实际上是有效指令及其值。换句话说,要激活特定指令并为其赋值,请删除前导分号。

 directive = value

指令名称区分大小写。指令是用于配置 PHP 或 PHP 扩展的变量。请注意,没有名称验证,因此如果未找到预期的指令,将使用默认值,该值可以是字符串、数字、PHP 常量(例如 E_ALL M_PI)、INI 常量之一(On、Off、True、False、Yes、No 和 None)。

实际上,C:\XAMPP\PHP 文件夹包含两个 INI 文件,一个用于生产环境,另一个用于开发环境。

php.ini-development.ini 与其生产变体非常相似,只是它在错误方面要冗长得多。在开发阶段,请将其复制为 php.ini 以便能够跟踪代码中的 bug。代码准备好部署后,php.ini-production.ini 文件用作有效的 php.ini 文件,这基本上在很大程度上抑制了错误消息。

php.ini 的指令分为不同的类别,例如错误处理、数据处理、路径和目录、文件上传、PHP 扩展和模块设置。

以下是 “php.ini” 文件中的一些重要指令列表:

short_open_tag = Off

打开短标签如下所示:<?  ?>。如果要使用 XML 函数,则必须将此选项设置为 Off。

safe_mode = Off

如果设置为 On,则您可能使用 --enable-safe-mode 标志编译了 PHP。安全模式与 CGI 使用最相关。请参阅 “CGI 编译时选项” 部分中的说明。

safe_mode_exec_dir = [DIR]

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

safe_mode_allowed_env_vars = [PHP_]

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

safe_mode_protected_env_vars = [LD_LIBRARY_PATH]

此选项设置用户在安全模式下无法更改的环境变量,即使 safe_mode_allowed_env_vars 设置得很宽松

disable_functions = [function1, function2...]

PHP4 配置的一个受欢迎的补充是,出于安全原因,能够禁用选定的功能,这也是 PHP5 中永久保留的功能。以前,这需要手动编辑制作 PHP 的 C 代码。Filesystem、system 和 network functions 可能应该首先被淘汰,因为允许通过 HTTP 写入文件和更改系统的能力从来都不是一个安全的想法。

max_execution_time = 30

函数 set_time_limit() 不会在安全模式下工作,因此这是使脚本在安全模式下超时的主要方法。在 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(又名 Built-in)。您可以更改此顺序。

变量将按从左到右的顺序依次覆盖,每次最右边的变量都会赢得这手牌。这意味着,如果您保留了默认设置,并且恰好对环境变量、POST 变量和 COOKIE 变量使用相同的名称,则 COOKIE 变量将在流程结束时拥有该名称。在现实生活中,这种情况并不多见。

register_globals = Off

此设置允许您决定是否要将 EGPCS 变量注册为全局变量。现在已弃用,从 PHP4.2 开始,此标志默认设置为 Off。请改用超全局数组。本书中的所有主要代码清单都使用超全局数组。

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 目录通常位于您的文档根目录下;如果 you.re 安全模式下运行,则必须执行此操作。将此项设置为 .为了包含来自脚本所在目录的文件。多个目录用冒号分隔:.:/usr/local/apache/htdocs:/usr/local/lib

doc_root =  [DIR]

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

file_uploads = [on/off]

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

upload_tmp_dir = [DIR]

除非您了解 HTTP 上传的含义,否则不要评论此行!

session.save-handler = files

除非在极少数情况下,否则您不希望更改此设置。所以不要碰它。

ignore_user_abort = [On/Off]

此设置控制网站访客单击浏览器的 Stop 按钮时发生的情况。默认值为 On,这意味着脚本将继续运行直到完成或超时。如果该设置更改为 Off,则脚本将中止。此设置仅适用于模块模式,而不适用于 CGI

mysql.default_host = hostname

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

mysql.default_user = username

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

mysql.default_password = password

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