PHP.INI 文件配置



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

phpinfo() 函数显示PHP、Apache、MySQL以及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以便追踪代码中的错误。代码准备好部署后,使用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代码。文件系统、系统和网络函数可能是首先要禁用的,因为允许通过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(又名内置变量)。您可以更改此顺序。

变量将按从左到右的顺序依次被覆盖,最右边的变量始终获胜。这意味着,如果您保留默认设置,并碰巧为环境变量、POST 变量和 COOKIE 变量使用了相同的名称,则在进程结束时,COOKIE 变量将拥有该名称。在实际应用中,这种情况很少发生。

register_globals = Off

此设置允许您决定是否要将 EGPCS 变量注册为全局变量。此设置现已弃用,从 PHP 4.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 文件的开头自动包含它。包含路径限制适用。

auto_append_file = [path/to/file]

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

include_path = [DIR]

如果设置此值,则只允许包含或加载来自这些目录的文件。包含目录通常位于您的文档根目录下;如果您在安全模式下运行,则这是必需的。将其设置为 "." 以包含与脚本位于同一目录下的文件。多个目录用冒号分隔:".:/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

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

广告