.htaccess 使用HTACCESS禁用单个目录的PHP(PHP-FPM)
我想禁用特定目录中PHP文件的解析,并了解如何做到这一点。问题是,我的服务器使用PHP-FPM,当我尝试在httpd.conf文件中使用.htaccess 使用HTACCESS禁用单个目录的PHP(PHP-FPM),.htaccess,php,.htaccess,Php,我想禁用特定目录中PHP文件的解析,并了解如何做到这一点。问题是,我的服务器使用PHP-FPM,当我尝试在httpd.conf文件中使用PHP\u flag时,我得到了无效命令“PHP\u flag”,可能拼写错误或由服务器配置中未包含的模块定义 在使用PHP-FPM的服务器上,如何使用位于web根目录上方的htaccess/httpd.conf文件禁用对给定web可访问目录中的PHP文件的解析 如何在给定的web环境中禁用PHP文件的解析 包含位于web上的htaccess/httpd.con
PHP\u flag
时,我得到了无效命令“PHP\u flag”,可能拼写错误或由服务器配置中未包含的模块定义
在使用PHP-FPM的服务器上,如何使用位于web根目录上方的htaccess/httpd.conf文件禁用对给定web可访问目录中的PHP文件的解析
如何在给定的web环境中禁用PHP文件的解析
包含位于web上的htaccess/httpd.conf文件的目录
使用PHP-FPM在服务器上创建根目录
如果没有mod_php(你不想要),你就无法用你的方式来表达你的想法,这就是为什么你会出现这个错误。PHP-FPM不是Apache模块。它独立于Apache运行。事实上,它的目的是在负载沉重的站点上使用,它可以控制所有的PHP进程
实现这一点的一种方法是使用目录
指令在virtualhost文件中指定要运行PHP的确切路径。不要只使用PHP处理程序,而是使用目录
指令将其括起来,并使用您希望它运行的实际路径。这里有一个例子
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html/
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/access.log combined
<Directory /path/to/php/only/folder/>
#then you PHP handler stuff
<IfModule mod_fastcgi.c>
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi_example.com
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi_example.com -socket /var/run/php5-fpm_example.com.sock -pass-header Authorization
</IfModule>
</Directory>
</VirtualHost>
服务器管理员webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot/var/www/example.com/public\u html/
ErrorLog/var/www/example.com/error.log
CustomLog/var/www/example.com/access.log
#然后你需要PHP处理程序的东西
AddType应用程序/x-httpd-fastp5.php
动作应用程序/x-httpd-FASTP5/php5 fcgi
别名/php5-fcgi/usr/lib/cgi-bin/php5-fcgi_example.com
FastCgiExternalServer/usr/lib/cgi-bin/php5-fcgi_example.com-socket/var/run/php5-fpm_example.com.sock-通过头授权
然后重新启动Apache。这应该将其限制到该目录。您可能需要从另一个配置中删除php处理程序信息,这样它就不会被覆盖
注意,我没有测试这个解决方案。自从Fedora27最近切换到php fpm以来,我也遇到了这个问题。不幸的是,使用mod_php的老方法不适用于php fpm
我确实在这里发现了另一个似乎更相关的问题:
其要点是在配置文件中使用
和
块,并使用SetHandler
对于您不希望解释PHP代码的每个目录
e、 g:
应该足够了
<Directory "/path/to/no/phpfiles">
<Files "*.*">
SetHandler !
</Files>
</Directory>
<Files "*.*">
SetHandler !
</Files>