如何更改配置设置

将PHP作为Apache模块运行

将PHP用作Apache模块时,还可以更改在Apache配置中使用指令的配置设置文件(例如。httpd.conf网址)和.hta访问文件夹。你需要“AllowOverride Options”或“AllowOverride All”权限。

有几个Apache指令允许您从Apache配置中更改PHP配置文件夹。对于以下指令的列表INI_全部,INI_PERDIR公司,INI_系统,看一下php.ini指令列表附录。

php值 名称 价值

设置指定指令的值。只能与一起使用INI_全部INI_PERDIR公司类型指令。要清除以前设置的值,请使用没有人作为值。

注释:不要使用php值设置布尔值。php标志应使用(见下文)。

php_滞后 名称 开|关

用于设置布尔配置指令。只能与一起使用INI_全部INI_PERDIR公司类型指令。

php管理员值 名称 价值

设置指定指令的值。这个无法使用在里面.hta访问文件夹。使用设置的任何指令类型php最小值不能被覆盖.hta访问ini_set().要清除以前设置的值,请使用没有人作为值。

php管理员标签 名称 开|关

用于设置布尔配置指令。这个无法使用在里面.hta访问文件夹。使用设置的任何指令类型php管理员标签不能被覆盖.hta访问ini_set().

示例#1 Apache配置示例

<If模块mod_php5.c>php_value include_path“.:/usr/local/lib/php”打开php_admin_flag引擎</If模块><If模块mod_php4.c>php_value include_path“.:/usr/local/lib/php”打开php_admin_flag引擎</If模块>

注意安全

PHP常量在PHP之外不存在。例如,在httpd.conf网址不能使用PHP常量例如全部(_ALL)E_通知设置错误_报告指令,因为它们没有任何意义,并将评估为0。请改用关联的位掩码值。这些常数可用于php.ini公司

通过Windows注册表更改PHP配置

在Windows上运行PHP时,配置值可以是使用Windows注册表对每个目录进行修改。这个配置值存储在注册表项中HKLM\SOFTWARE\PHP\Per目录值,在路径名对应的子键中。例如,配置目录的值c: \inetpub\wwwroot目录存储在密钥中HKLM\SOFTWARE\PHP\每个目录值\c\inetpub\wwwroot。的设置目录对于从此处运行的任何脚本都是活动的目录或其任何子目录。键下的值应该具有PHP配置指令的名称,并且字符串值。不会分析值中的PHP常量。但是,只有配置值可以在INI_用户可以设置这种方式,INI_PERDIR公司值不能,因为每个请求都会重新读取这些配置值。

PHP的其他接口

无论您如何运行PHP,都可以在运行时更改某些值通过ini_set()。请参阅文档ini_set()第页了解更多信息。

如果您对配置设置的完整列表感兴趣在具有当前值的系统上,可以执行phpinfo()功能,并查看结果第页。您还可以访问单个配置的值在运行时使用ini_get()获取cfg_var().

添加注释

用户贡献的笔记2条注释

gmail dot com上的contrees.du.reve
16年前
能够将php指令放在httpd.conf中,并让它们在每个目录或每个虚拟主机的基础上工作,这真是太棒了。现在还有另一个值得注意的方面:

当php作为apache模块(即在网页中)运行时,放入apache conf文件中的php.ini指令适用于php,但当php以CLI(命令行界面)运行时则不适用。

这样的功能可能会被一些不快乐的人所讨厌,但我想大多数人会觉得它很有用。就我而言,我真的很高兴我可以在httpd.conf文件中使用open_basedir,它限制了我的域的web用户和子管理员的访问,但它不限制我自己的命令行php脚本。。。
自己在pabloviquez网站
14年前
注意,通过windows注册表更改PHP配置将使用PHP_admin_value设置新值。这使得您无法在运行时覆盖它们。

因此,例如,如果您在windows注册表上设置include_path,然后在应用程序中调用set_include_path函数,它将返回false,并且不会更改include_path。
到顶部