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



我的问题

我想关闭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-files(在头像目录中放置一个额外的php.ini-file),但没有得到工作。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池

我也读过关于php-fpm池,但在我看来,你只能通过域/vhost指定池,我错了吗?

编辑vhost

我尝试在这里建议的<Directory /path/to/secure/dir>部分中从vhosts文件(它是这样称呼的吗?)禁用它,但也不支持。


额外信息

我正在构建一个基于Paniques的HUGE的应用程序。在上传目录的.htaccess-文件中,php引擎被关闭(出于安全原因),使用php_flag engine off .

试试这个。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工作

您也可以在任何httpd.conf文件中这样做:

<Directory "/path/to/secure/dir">
<Files "*.*">
SetHandler !
</Files>
</Directory>
目录下禁用php

最新更新