配置文件(php.ini)在PHP启动时读取。对于PHP的服务器模块版本,在Web服务器启动时只读取一次。对于CGI和CLI版本,每次调用都会读取。
php.ini的搜索路径如下(按顺序):。
SAPI模块指定的位置(Apache2的PHPIniDir指令、CGI和CLI的-c命令行选项)。
PHPRC环境变量。
不同的php。ini文件的位置。注册表目录的位置取决于系统是32位还是64位。在32位系统中执行32位PHP或在64位系统中执行的64位PHP使用[(HKEY_LOCAL_MACHINESOFTWAREPHP]。如果系统版本与PHP版本体系结构匹配,则使用[HKEY_LOCAL_MACHINESOFTWAREPHPx.y.z]、[HKEY_LOCAL_MACHINESOFTWAREPHPx.y]、[HKEY_LOCAL_MACHINESOFTWAREPHP\, where x, y and z refer to the PHP major version number, minor version number and release batch. 对于64位系统运行的32位版本的PHP,请按以下顺序进行检查。x、y、z是PHP主要版本号次要版本号和发行批。如果这些目录中的任何一个具有IniFilePath的键,则第一个值为php。作为ini的位置使用(仅限Windows)。
[HKEY_LOCAL_MACHINESOFTWAREPHP](Windows注册表位置)的IniFilePath值。
当前工作目录(用于CLI)。
Web服务器目录(对于SAPI模块)或PHP所在的目录(对于Windows的其他情况)。
由Windows目录(C:windows或C:winnt)或--with-config-file-path编译时选项指定的位置。
php-SAPI.ini存在时(SAPI是当前SAPI名,因此实际的文件名为php-cli.ini或php-apache.ini等),php。代替ini使用。SAPI的名称为php_sapi_name()决定。
注意:
Apache Web服务器在启动时重定向至根目录。由此,PHP在根目录中php。如果ini存在,则尝试读取它。
php。在ini中可以使用环境变量。
例1php。ini环境变量:
; PHP_MEMORY_LIMIT 来自于环境变量的值 memory_limit = ${PHP_MEMORY_LIMIT}
由扩展库处理的php。ini指令显示在每个扩展库的页面上。有关内核配置选项的信息,请参见附录。但并不是所有的PHP指令都在手册上。关于所使用版本的PHP的构成指令的完整列表,php。请参阅ini文件。全部都有评论。另外,Git php。ini的最新版本可能会有用。
例2php。ini示例:
; any text on a line after an unquoted semicolon (;) is ignored [php] ; section markers (text within square brackets) are also ignored ; Boolean values can be set to either: ; true, on, yes ; or false, off, no, none register_globals = off track_errors = yes ; you can enclose strings in double-quotes include_path = ".:/usr/local/lib/php" ; backslashes are treated the same as any other character include_path = ".;c:phplib"
现有.ini变量包括。可以在ini文件中引用。示例:open_basedir = ${open_basedir} ":/new/dir".
扫描路径配置
php.读取ini后,可以配置PHP扫描附加.ini配置文件的指定路径。编译时--指定要用with-config-file-scan-dir参数扫描的目录。扫描路径包括环境变量PHP_INI_SCAN_也可以通过DIR进行设置。
您也可以通过将系统特定的目录分隔符(在Windows、NetWare和RISC OS中;:在其它OS中,PHP常量PATH_SEPARATOR可获取值)添加到扫描路径配置中来设置多个扫描路径。PHP_INI_SCAN_如果DIR为空,则PHP在编译时也会扫描--with-config-file-scan-dir中指定的路径。
对于每个目录,PHP将优先扫描目录中以.ini结尾的所有配置文件的第一个字符顺序。所有中断的配置文件。php_ini_scanned_可以使用files()函数检索列表,也可以在PHP命令行中添加--ini参数来显示。
以下假设 PHP 配置为 --with-config-file-scan-dir=/etc/php.d
并且目录分隔符为 :
$ php
PHP 会加载 /etc/php.d/*.ini 全部配置文件。
$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
PHP 会加载 /usr/local/etc/php.d/*.ini 全部配置文件。
$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
PHP 会加载 /etc/php.d/*.ini 下的全部配置文件,然后加载
/usr/local/etc/php.d/*.ini 下的全部配置文件。
$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
PHP 会加载 /usr/local/etc/php.d/*.ini 下的全部配置文件,然后加载
/etc/php.d/*.ini 下的全部配置文件。