我想关闭特定文件夹中的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.
Run Code Online (Sandbox Code Playgroud)
我试过按目录的php.ini文件(在avatars目录中放了一个额外的php.ini文件),但没有成功。PHP从未加载文件。不知道我做错了什么,我尝试将其命名为php.ini和.user.ini,但都没有用。
我还尝试在php.ini主文件中使用一个部分,
[path=/path/to/secure/dir]
engine = off
max_execution_time = 300
Run Code Online (Sandbox Code Playgroud)
当我这样做并phpinfo()在安全目录中的文件中运行时,该文件max_execution_time被设置为300(因此该文件已被重新加载),但是引擎仍在运行(我假设,因为phpinfo()显示了)。
我也读过有关php-fpm池的信息,但是在我看来,您只能按域/虚拟主机指定池,我错了吗?
我尝试在此处<Directory /path/to/secure/dir>建议的部分中从vhosts文件中禁用它(这就是所谓的名字吗?),但这也不被支持。
我正在基于Paniques的HUGE构建应用程序。在上载目录的.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>
Run Code Online (Sandbox Code Playgroud)
应该可以与 php-fpm 和 mod_php 一起使用。