我想关闭特定文件夹中的 php引擎,用户可以在其中上传文件,但我似乎无法弄明白。
PHP版本: 5.5.26
PHP模式: php-fpm(FastCGI流程管理器)
Apache版本: 2.2.29
(服务器: Synology DS212j - DSM 5.2)
还有什么需要知道的吗?
php-fpm(以及其他一些模式)不支持,它会出现500错误,记录:
Invalid command 'php_value', perhaps mis-spelled or defined by a module not included in the server configuration.
我已经尝试了每个目录的php.ini文件(在avatars目录中添加了一个额外的php.ini文件),但是没有成功。 PHP从未加载过该文件。不确定我做错了什么,我试着将它命名为 php.ini 和 .user.ini ,但都没有用。
我还尝试使用主 php.ini 文件中的一个部分
[path=/path/to/secure/dir]
engine = off
max_execution_time = 300
当我这样做并在安全目录中的文件中运行phpinfo()
时,max_execution_time
设置为300(因此文件已重新加载),但引擎仍在运行(我假设,自显示phpinfo()
以来。
我也读过有关php-fpm池的信息,但在我看来,你只能按域/ vhost指定池, 我错了吗?
我尝试在<Directory /path/to/secure/dir>
部分中按照建议的here从vhosts文件中禁用它(这是它的名字吗?),但是也没有支持。
我正在构建基于Paniques's HUGE的应用程序。在上传目录的the .htaccess-file中,使用php_flag engine off
关闭php引擎(出于安全考虑)。
答案 0 :(得分:1)
试试这个.htaccess文件:
<Files "*.php">
SetHandler none
SetHandler default-handler
Options -ExecCGI
RemoveHandler .php
</Files>
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
应该使用php-fpm和mod_php。
答案 1 :(得分:0)
您也可以在任何httpd.conf文件中执行以下操作:
<Directory "/path/to/secure/dir">
<Files "*.*">
SetHandler !
</Files>
</Directory>
HTT Hardrain,我从他的回答中得到了这个技巧:Apache: Disable php in a directory