У меня есть скрипт 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 дней ...
Мы будем очень благодарны за любые подсказки о том, как диагностировать эту проблему.
Спасибо за совет, но в этом и заключалась цель двух строк скрипта: error_reporting (E_ALL); ini_set ('display_errors', 1); Хотя они и отличаются от ваших, мне они показались правильными? Я не вижу ошибок на странице ...
Привет, во-первых, вам нужно поменять местами ini_set и error_reporting. Причина в том, что если ваш INI не установлен, вы не сможете увидеть ошибки, хотя ваш error_reporting включен или нет. вам нужно будет использовать журнал ошибок, хотя он просто покажет любые ошибки php. Чтобы узнать, что удерживает создание файла, проверьте, что вы получаете в терминале, если вы запускаете свой файл, есть ли какие-либо проблемы с правами доступа к папке. или вам может потребоваться немного подождать, пока файл будет записан, а затем сохранен.
Я поменял местами строки 1 и 2 ... тот же результат без вывода ошибок. а) запуск php test.php, работает б) вызов сайт / test.php не создает файл в) перезапуск apache2, затем вызов сайт / test.php работает (... и перестанет работать через 1 день ...) Я полностью запутался .. .
Я столкнулся с той же проблемой. Вы нашли решение?
Включите ведение журнала ошибок (
ini_set('error_reporting',E_ALL); ini_set('display_errors',true);
) или проверьте журнал ошибок (расположение error_log можно найти вphpinfo()
). Начнем с этого момента