PHP FastCGI 从 .htaccess 读取 php 标志?怎么做?

PHP FastCGI 从 .htaccess 读取 php 标志?怎么做?

我正在对 Hetzner 托管的专用服务器上托管的网站进行一些更改,但我发现不知何故一些.htaccess 中设置的 php 标志将传递给以 fastCGI 形式运行的 PHP。据我所知,需要在 php.ini 中设置 fastCGI/FPM 标志,所以我很困惑,想了解这个诡计是如何运作的。不幸的是,我限制了对服务器的访问,所以我看不到 apache 设置。

例如,该.htaccess文件具有以下配置(未包装在 IfModule 条件中)。

php_value memory_limit 256M
php_flag  log_errors on
php_value error_log  /usr/home/shedrub/php_error.log

当我运行 php 页面时,phpinfo()我得到:

Server API:     CGI/FastCGI

Directive       Local Value                  Master Value
memory_limit    96M                          96M
log_errors      On                           Off 
error_log       /[redacted]/php_error.log    no value

几个有趣的观点:

  • memory_limit标志未通过或无法通过。
  • .htaccess如果我用包装块<IfModule mod_php5.c>,则值仍会传递给 php 进程。
  • 如果我更改 .htaccess 中的一个值,则需要几分钟的时间才能在 phpinfo 中显示。我认为这是因为旧进程仍在处理请求。

因此,感觉这就像 apache 模块和 fastCGI 的混合体。您知道这是如何实现的吗?还是我遗漏了有关 fastCGI 在 apache 中的工作原理的某些信息?

相关内容