Команда PHP Exec не будет работать до тех пор, пока apache не будет перезапущен - PullRequest
0 голосов
/ 19 октября 2018

У меня есть скрипт php, который выполняет команду.Этот скрипт работал месяцами, если не годами.После обновления до Debian 9 он перестает работать каждый день.Если я перезапущу apache, он снова будет работать на весь день, затем перестанет работать на следующий день ... пока я не перезапущу apache и т. Д.

Я написал очень простой тестовый скрипт:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

exec('/usr/bin/convert -density 600 /var/www/mysite/var/tmp/etiquette_20181019_071109_991362.pdf[0] -quality 75 /var/www/mysite/var/tmp/etiquette_20181015_110715_817744.pdf.test.jpeg', $output, $return);

var_dump($return);
var_dump($output);

echo shell_exec('echo SHELL EXEC');
echo exec('echo EXEC',$return,$output);
echo 'done';

Когда я вызываю URL, результат будет:

int(1) array(0) { } SHELL EXEC EXECdone

, но файл /var/www/mysite/var/tmp/etiquette_20181015_110715_817744.pdf.test.jpeg НЕ СОЗДАН.(страница отображается мгновенно, указывая на то, что команда convert, вероятно, вообще не выполнялась ....)

Затем я просто перезагружаю /etc/init.d apache2 и затем снова вызываю URL.Вывод тот же, НО теперь файл создан (страница занимает до 5 или 10 секунд во время преобразования изображения), и он будет работать до следующего дня.Это воспроизводится каждый день в течение 5 дней ...

Любая подсказка о том, как диагностировать эту проблему, будет высоко ценится.

...