Как установить php_flag для каждого каталога с помощью php-fpm?

Моя проблема

Я хочу отключить движок php в определенной папке, куда пользователи могут загружать файлы, но я не могу понять это.

Версия PHP: 5.5.26

Режим PHP: php-fpm (FastCGI Process Manager)

Версия 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-файлы для каждого каталога (поместив дополнительный 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 пулы

Я также читал о пулах php-fpm, но мне кажется, что вы можете указывать пулы только по домену /vhost, я не прав?

Редактировать vhost

Я попытался отключить его из файла vhosts (это так называется) в <Directory /path/to/secure/dir> раздел, как предлагается здесь, но это также не поддерживается.


Дополнительная информация

Я создаю приложение, основанное на ОГРОМНОЙ Панике. В .htaccess-файле в каталоге загрузки механизм php отключен (по соображениям безопасности), используя php_flag engine off,

2 ответа

Попробуйте этот файл.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>

HTT Hardrain, я получил эту технику из его ответа здесь: Apache: отключить php в каталоге

Другие вопросы по тегам