我的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风格的格式。