简介
本文并非是对英文版 php.ini 的简单翻译,而是参考了众多资料以后,结合自己的理解,
在原有 php.ini 基础上增加了一些实用模块的配置说明,同时对文件内容的安排进行了调整。
由于作者不喜欢 no-free 的玩意儿,所以删除了除 MySQL 和 PostgreSQL 以外的其他数据库模块配置选项。
关于php.ini ;;
这个文件必须命名为\'\'php.ini\'\'并放置在httpd.conf中的PHPIniDir指令指定的目录中。
最新版本的php.ini可以在下面两个位置查看:
http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co
http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co
语法
该文件的语法非常简单。空白字符和以分号开始的行被简单地忽略。
章节标题(例如: [php])也被简单地忽略,即使将来它们可能有某种意义。
设置指令的格式如下:
directive = value
指令名(directive)是大小写敏感的!所以"foo=bar"不同于"FOO=bar"。
值(value)可以是:
1. 用引号界定的字符串(如:"foo")
2. 一个数字(整数或浮点数,如:0, 1, 34, -1, 33.55)
3. 一个PHP常量(如:E_ALL, M_PI)
4. 一个INI常量(On, Off, none)
5. 一个表达式(如:E_ALL & ~E_NOTICE)
INI文件中的表达式仅使用:位运算符、逻辑非、圆括号:
| 位或
& 位与
~ 位非
! 逻辑非
布尔标志用 On 表示打开,用 Off 表示关闭。
一个空字符串可以用在等号后不写任何东西表示,或者用 none 关键字:
foo = ; 将foo设为空字符串
foo = none ; 将foo设为空字符串
foo = "none" ; 将foo设为字符串\'\'none\'\'
如果你在指令值中使用动态扩展(PHP扩展或Zend扩展)中的常量,
那么你只能在加载这些动态扩展的指令行之后使用这些常量。
httpd.conf ;;
还可以在httpd.conf中覆盖php.ini的值,以进行更灵活的配置:
php_value name value ;设置非bool型的指令,将value设为none则清除先前的设定
php_flag name on|off ;仅用于设置bool型的指令
PHP常量(如E_ALL)仅能在php.ini中使用,在httpd.conf中必须使用相应的掩码值。
带"SYS"标志的指令只能在httpd.conf中的全局配置部分使用,
带"ini"标志的指令不能在httpd.conf中使用,它们仅能用于php.ini中。
====================配置指令详解========================================
以下每个指令的设定值都与 PHP-5.2.0 内建的默认值相同。
也就是说,如果\'\'php.ini\'\'不存在,或者你删掉了某些行,默认值与之相同。
;;;;;;;;;;;;
Apache ;;
;;;;;;;;;;;;
[Apache]
仅在将PHP作为Apache模块时才有效。
engine = On
是否启用PHP解析引擎。
可以在httpd.conf中基于目录或者虚拟主机来打开或者关闭PHP解析引擎。
last_modified = Off
是否在Last-Modified应答头中放置该PHP脚本的最后修改时间。
xbithack = Off
是否不管文件结尾是什么,都作为PHP可执行位组来解析。
child_terminate = Off
PHP脚本在请求结束后是否允许使用apache_child_terminate()函数终止子进程。
该指令仅在UNIX平台上将PHP安装为Apache1.3的模块时可用。其他情况下皆不存在。
;;;;;;;;;;;;;
PHP核心 ;;
;;;;;;;;;;;;;
[PHP-Core-DateTime]
前四个配置选项目前仅用于date_sunrise()和date_sunset()函数。
date.default_latitude = 31.7667
默认纬度
date.default_longitude = 35.2333
默认经度
date.sunrise_zenith = 90.583333
默认日出天顶
date.sunset_zenith = 90.583333
默认日落天顶
date.timezone =
未设定TZ环境变量时用于所有日期和时间函数的默认时区。
中国大陆应当使用"PRC"
应用时区的优先顺序为:
1. 用date_default_timezone_set()函数设定的时区(如果设定了的话)
2. TZ 环境变量(如果非空的话)
3. 该指令的值(如果设定了的话)
4. PHP自己推测(如果操作系统支持)
5. 如果以上都不成功,则使用 UTC
[PHP-Core-Assert]
assert.active = On
是否启用assert()断言评估
assert.bail = Off
是否在发生失败断言时中止脚本的执行
阅读全文>>