У меня в php ini есть эта функция, которая по умолчанию блокирует shell_exec. php.ini
suhosin.executor.func.blacklist = shell_exec
Работает хорошо. Когда я хочу разрешить shell_exec, я использую в httpd.conf эту функцию в каталоге, который разрешает функцию. Эта функция
<Каталог "/ crons">
php_admin_value suhosin.executor.func.blacklist “shell_exec”
</ Каталог>
Это разрешает функцию для одного каталога. Его работа хорошо. Если написать адрес в веб-браузер, все в порядке. Функция для этого каталога разрешена.
Но если в оболочке напишите:
php /crons/e.php
Итак, я получаю в консоли ошибку php shell_exec, она отключена. Потому что он работает в веб-браузере, но не работает в bash?
Спасибо за ответ
PHP в командной строке не использует Apache php_admin_value. Ты можешь использовать
php -d "suhosin.executor.func.blacklist=" e.php
Или используйте собственный файл php.ini:
php -n -c php.ini e.php
Или настройте php-cli с помощью специального файла php.ini (отметьте php --ini
) - обычно что-то вроде /etc/php5/cli/php.ini.