使用PHP- fpm时,我可以在htaccess中重写PHP设置吗?


Can I Override PHP Setting in htaccess When Using PHP-FPM?

我的vhost是这样的:

<Directory "/var/www">
  Options Indexes FollowSymlinks MultiViews
  AllowOverride All
  Require all granted
  <FilesMatch "'.php$">
    Require all granted
    SetHandler proxy:fcgi://127.0.0.1:9000
  </FilesMatch>
</Directory>

我试图将php_value行添加到我的。htaccess文件。一旦我这样做,我得到500个错误,这是我的Apache的错误日志:

/var/www/。htaccess:无效的命令'php_value',可能拼写错误或由未包含在服务器配置中的模块定义

所以,问题是:当使用PHP-FPM时,是否有办法通过。htaccess覆盖php.ini设置?

tia。

正如其他人已经指出的,不,当使用PHP-FPM时,你不能通过。htaccess覆盖设置。

但是PHP中似乎也有类似的机制,命名为.user.ini文件。

从PHP 5.3.0开始,PHP包含了基于每个目录的配置INI文件的支持。这些文件仅由CGI/FastCGI SAPI处理。此功能使PECL的htscanner扩展过时。如果你使用的是Apache,使用.htaccess文件来达到同样的效果。

除了主PHP . INI文件之外,PHP还扫描每个目录中的INI文件,从请求的PHP文件的目录开始,一直到当前文档的根目录(如$_SERVER['DOCUMENT_ROOT']中设置的)。如果PHP文件位于文档根目录之外,则只扫描其目录。

只有PHP_INI_PERDIR和PHP_INI_USER模式的INI设置才会在.user. INI样式的INI文件中被识别。

下面的评论

"如果你使用的是Apache,使用。htaccess文件来达到同样的效果。

澄清一下,这只适用于Apache模块模式。如果你在Apache CGI/FastCGI服务器上把php指令放在。htaccess中,这将会以500的错误轰炸服务器。

所以你可以创建类似于。htaccess的.user.ini文件,但是是ini风格的格式。