server — почему php exec, system и passthrough функции перестали работать, если FPM включен

Здравствуйте, ребята, я средний в конфигурации сервера. Я использую функцию php exec для запуска некоторых команд на моем сайте. Но он перестал работать, если я включил PHP-FPM.
Кто-нибудь знает, почему это вызывает эту проблему?
Ниже приведена функция php для запуска команды

$cmd="pdftk " . $pdf_to_fill . " fill_form " . $fdf_file . " output $outputfile 2>&1";
exec($cmd, $output, $return_var);

Заранее спасибо за помощь.

0

Решение

Это может быть несколько вещей, во-первых, попробуйте подтвердить, включен ли exec, включен ли безопасный режим и находимся ли мы в тюрьме.

Первые два можно сделать с помощью этого скрипта, просто посмотрите, что он выводит при доступе к нему:

if(function_exists('exec')) {
echo '<h1>exec is available.</h1>';
}
if( ini_get('safe_mode') ){
echo '<h1>Safe mode is on.</h1>';
}

Заключенную в тюрьму раковину немного сложнее обнаружить, но она работает var_dump(scandir('/bin/')) даст указание, если в нем гораздо меньше файлов, чем при запуске ls -ltr /bin из командной строки, то вы в тюрьме.

Также, возможно, стоит использовать полный путь к двоичному файлу pdftk, и если он все еще не работает, попробуйте запустить is_executable на пути для pdftk.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]