Здравствуйте, ребята, я средний в конфигурации сервера. Я использую функцию php exec для запуска некоторых команд на моем сайте. Но он перестал работать, если я включил PHP-FPM.
Кто-нибудь знает, почему это вызывает эту проблему?
Ниже приведена функция php для запуска команды
$cmd="pdftk " . $pdf_to_fill . " fill_form " . $fdf_file . " output $outputfile 2>&1";
exec($cmd, $output, $return_var);
Заранее спасибо за помощь.
Это может быть несколько вещей, во-первых, попробуйте подтвердить, включен ли 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.
Других решений пока нет …