【问题标题】:Use php_flag in .htaccess在 .htaccess 中使用 php_flag
【发布时间】:2014-04-04 09:30:51
【问题描述】:

我在我的Debian 7 根服务器上将PHP 5.4.4 用作Apache/2.2.22 中的mod_php。

目前我只能使用一种 PHP 配置(php.ini),我不会更改为 FCGI 或其他 Wrappers 来使用单独的配置文件。

我正在寻找在目录上设置特殊 PHP 配置的解决方案。首先是使用.htaccessphp_flag,但这不起作用(例如php_flag display_errors true)。

如何使用此架构?我必须为此安装一个特殊模块吗?

【问题讨论】:

    标签: php .htaccess configuration


    【解决方案1】:

    让我先引用apache manual on .htaccess

    如果您有权访问 httpd 主服务器配置文件,则应完全避免使用 .htaccess 文件。使用 .htaccess 文件会降低 Apache http 服务器的速度。您可以在 .htaccess 文件中包含的任何指令都最好设置在 Directory 块中,因为它具有相同的效果并具有更好的性能。

    也就是说,在那些<Directory>- 或<VirtualHost>- 指令中,您可以

    使用php_value设置需要值的ini-settings:

    php_value memory_limit 64M
    

    php_flag 用于二进制开关设置:

    php_flag log_errors on
    

    此外,如果您维护一个有许多用户的服务器,并且您确实希望允许他们使用 .htaccess 来影响配置,您可以使用 php_admin_valuephp_admin_flag 来设置它们以一种用户无法在 .htaccess 中覆盖它们的方式。

    php_admin_value open_basedir /path/to/a/single/level/above/docroot
    php_admin_flag display_errors on
    

    mod_php manual,这是常规的php apache模块,所以不需要额外的特殊模块。

    记住:

    [this] 只能与 PHP_INI_ALL 和 PHP_INI_PERDIR 类型指令一起使用。

    您可以查看list of php.ini directives的Changeable列

    【讨论】:

      【解决方案2】:

      尝试在您要更改的目录的主 apache 配置中启用 AllowOverride OptionsAllowOverride All

      然后,例如要启用显示错误消息,请使用php_flag display_errors "1"

      【讨论】:

      • AllowOverride 最近(并且永远存在)在所有主机上,如 All 定义的那样。
      猜你喜欢
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 2015-01-01
      相关资源
      最近更新 更多