如何在 Apache 里修改 PHP 配置
Posted 流光瞬息
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Apache 里修改 PHP 配置相关的知识,希望对你有一定的参考价值。
当使用 php 作为 Apache 模块时,也可以使用 Apache 配置文件(例如:httpd.conf) 和 .htaccess 文件中的指令来修改 PHP 的配置
设定,不过需要有 "AllowOverride Options" 或 "AllowOverride All" 权限才可以
哪些指令可以让用户在 Apache 配置文件内部修改 PHP 的配置?
属于 PHP_INI_ALL、PHP_INI_PERDIR、或 PHP_INI_SYSTEM 中的一个,可以参考看 php.ini 配置选项列表:http://php.net/manual/zh/ini.list.php
php.ini 配置选项列表里面的"可修改范围"决定了该配置在什么情况下可以被配置,可以参考:http://php.net/manual/zh/configuration.changes.modes.php
PHP_INI_* 模式定义了一个 PHP 指令在何时何地,是否能够被设定,手册中的每个指令都有其所属的模式。例如有些指令可以在 PHP 脚本中用 ini_set
() 来设定,而有些只能在 php.ini 或 httpd.conf 中,例如:output_buffering 指令是属于PHP_INI_PERDIR(可在 php.ini,.htaccess 或 httpd_conf 中设定),
因而就不能使用 ini_set() 来设定,但是像 display_errors 指令属于 PHP_INI_ALL 因而就可以在任何地方被设定,包括使用 ini_set()
php_admin_value name value
设定指定的指令的值,不能用于 .htaccess 文件,任何用 php_admin_value 设定的指令都不能被 .htaccess 或 virtualhost 中的指令覆盖
php_admin_flag name on | off
用来设定布尔值的配置指令 ,不能用于 .htaccess 文件,任何用 php_admin_flag 设定的指令都不能被 .htaccess 或 virtualhost 中的指令覆盖
参考常见 apache php_admin_flag、php_admin_value 设置:
https://hcldirgit.github.io/2017/10/13/Php/7.%20%E5%B8%B8%E8%A7%81apache%20php_admin_value%20php_admin_flag%20%E8%AE%BE%E7%BD%AE/
注意:php_admin_flag、php_admin_value 一般用于 httpd.conf
php_value name value
设置指定的值,只能用于 PHP_INI_ALL 或 PHP_INI_PERDIR 类型的指令
php_flag name on | off
用来设定布尔值的配置指令,只能用于 PHP_INI_ALL 或 PHP_INI_PERDIR 类型的指令
php_value、php_flag 主要用于 .htaccess 中,但如果是 PHP_INI_ALL 类型的指令可以在任何地方被设定
而 value 和 flag 的区别在于:value 用于设置值,flag 用于只能是 on | off
以上是关于如何在 Apache 里修改 PHP 配置的主要内容,如果未能解决你的问题,请参考以下文章
如何在Apache和Nginx禁止上传目录里PHP的执行权限