Not*_*ter 3 php apache .htaccess
我的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>
Run Code Online (Sandbox Code Playgroud)
我正在尝试将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模块模式.如果你将.htaccess中的php指令放在Apache CGI/FastCGI服务器上,这将导致服务器突然出现500错误.
因此,您可以创建.user.ini
类似于.htaccess的文件,但采用的是ini样式格式.