如何使用php-fpm设置每个目录的php_flag?

时间:2015-07-24 18:20:33

标签: php php-ini

我的问题

我想关闭特定文件夹中的 php引擎,用户可以在其中上传文件,但我似乎无法弄明白。

PHP版本: 5.5.26

PHP模式: php-fpm(FastCGI流程管理器)

Apache版本: 2.2.29

服务器: Synology DS212j - DSM 5.2)

还有什么需要知道的吗?


到目前为止我已尝试过:

从.htaccess-file

禁用

php-fpm(以及其他一些模式)不支持,它会出现500错误,记录:

Invalid command 'php_value', perhaps mis-spelled or defined by a module not included in the server configuration.

每个目录php.ini

我已经尝试了每个目录的php.ini文件(在avatars目录中添加了一个额外的php.ini文件),但是没有成功。 PHP从未加载过该文件。不确定我做错了什么,我试着将它命名为 php.ini .user.ini ,但都没有用。

主要php.ini部分

我还尝试使用主 php.ini 文件中的一个部分

[path=/path/to/secure/dir]
engine = off
max_execution_time = 300

当我这样做并在安全目录中的文件中运行phpinfo()时,max_execution_time设置为300(因此文件已重新加载),但引擎仍在运行(我假设,自显示phpinfo()以来。

php-fpm pools

我也读过有关php-fpm池的信息,但在我看来,你只能按域/ vhost指定池, 我错了吗?

编辑vhost

我尝试在<Directory /path/to/secure/dir>部分中按照建议的here从vhosts文件中禁用它(这是它的名字吗?),但是也没有支持。


额外信息

我正在构建基于Paniques's HUGE的应用程序。在上传目录的the .htaccess-file中,使用php_flag engine off关闭php引擎(出于安全考虑)。

2 个答案:

答案 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