php.ini的读取顺序

来自Blueidea
跳转至: 导航搜索

PHP旧版本将php.ini放在windows目录下,在PHP5中,PHP.ini的查找路径不再限于PHP4时代的%SystemRoot%,PHP5会按以下顺序查找PHP.ini:

WEB服务顺序

  1. PHPIniDir(Apache 2 module only,这个指令仅仅用于当PHP作为Apache模块时使用,不支持CGI运行的PHP)
  2. 注册表键值:HKEY_LOCAL_MACHINE/SOFTWARE/PHP/IniFilePath
  3. 环境变量:%PHPRC%
  4. PHP5的目录(for CLI),或者web服务器目录(for SAPI modules)
  5. Windows目录(C:/windows or C:/winnt)

在命令行下的顺序大致

  1. 注册表键值:HKEY_LOCAL_MACHINE/SOFTWARE/PHP/IniFilePath
  2. Windows目录(C:/windows or C:/winnt)
  3. PHP5的目录(for CLI),或者web服务器目录(for SAPI modules)
  4. 环境变量:%PHPRC%
  5. php -c "c:/inidir/" test.php

排最后的并且有值的生效

查看php.ini 中所有生效的选项

<?php
$ini = file_get_contents('c:/php/cmdini/php.ini');
$ini = explode("\n", $ini);
foreach ($ini as $value) {
	if ($value && $value[0] != ';' && $value[0]!="\r") {
		echo "$value"."\n";
	}
}
?>