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

标签 php php-ini

我的问题

我想关闭特定文件夹中的 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/

相关文章:

php - 需要帮助将此 php mysql 代码转换为 mysqli

php - centos如何安装curl php

php - 在 PHP 中使用内置函数 ini_set 和符号 @ 有什么区别?

php - 从数组中加载特定数据

java - 在 solr 中进行分面时出现问题

php - 如何使用 Gmail 凭据作为输入在 php 中获取用户的名字?

php - 在 wamp 中为 php 启用 opcache

php - 日期函数忽略默认时区

php - 用于 unix 的 php.ini 中的 sendmail_path [电子邮件发件人的全名]

php - 从数据库检索数据出现错误