我的问题
我想关闭特定文件夹中的 php 引擎,用户可以在该文件夹中上传文件,但我似乎无法弄清楚。
PHP 版本:5.5.26
PHP模式:php-fpm(FastCGI进程管理器)
Apache 版本:2.2.29
(服务器: Synology DS212j - DSM 5.2)
您还有什么需要知道的吗?
到目前为止我尝试了什么:
从 .htaccess 文件中禁用
这不受 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(在 avatars 目录中添加一个额外的 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 池的信息,但在我看来,您只能按域/虚拟主机指定池,我错了吗?
编辑虚拟主机
我尝试在 <Directory /path/to/secure/dir>
中从 vhosts 文件中禁用它(这就是它的名字吗?)建议部分 here ,但这也不被支持。
额外信息
我正在构建基于 Paniques's HUGE 的应用程序.在 the .htaccess-file在上传目录中,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 一起工作。
关于php - 如何使用 php-fpm 为每个目录设置 php_flag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617263/