Как установить 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 в каталоге