php.ini中的php-5.2.0配置指令详解

网络整理 - 08-25

  简介

  本文并非是对英文版 php.ini 的简单翻译,而是参考了众多资料以后,结合自己的理解,

  在原有 php.ini 基础上增加了一些实用模块的配置说明,同时对文件内容的安排进行了调整。

  由于作者不喜欢 no-free 的玩意儿,所以删除了除 MySQL 和 PostgreSQL 以外的其他数据库模块配置选项。

  关于php.ini ;;

  这个文件必须命名为''php.ini''并放置在httpd.conf中的PHPIniDir指令指定的目录中。

  最新版本的php.ini可以在下面两个位置查看:

  ?view=co

  ?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

  是否在发生失败断言时中止脚本的执行