Команда PHP Exec не запускается до перезапуска apache

У меня есть скрипт 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 дней ...

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

Включите ведение журнала ошибок (ini_set('error_reporting',E_ALL); ini_set('display_errors',true);) или проверьте журнал ошибок (расположение error_log можно найти в phpinfo()). Начнем с этого момента

Anton 19.10.2018 10:14

Спасибо за совет, но в этом и заключалась цель двух строк скрипта: error_reporting (E_ALL); ini_set ('display_errors', 1); Хотя они и отличаются от ваших, мне они показались правильными? Я не вижу ошибок на странице ...

user2968688 19.10.2018 16:06

Привет, во-первых, вам нужно поменять местами ini_set и error_reporting. Причина в том, что если ваш INI не установлен, вы не сможете увидеть ошибки, хотя ваш error_reporting включен или нет. вам нужно будет использовать журнал ошибок, хотя он просто покажет любые ошибки php. Чтобы узнать, что удерживает создание файла, проверьте, что вы получаете в терминале, если вы запускаете свой файл, есть ли какие-либо проблемы с правами доступа к папке. или вам может потребоваться немного подождать, пока файл будет записан, а затем сохранен.

Nikhil Joshi 19.10.2018 16:44

Я поменял местами строки 1 и 2 ... тот же результат без вывода ошибок. а) запуск php test.php, работает б) вызов сайт / test.php не создает файл в) перезапуск apache2, затем вызов сайт / test.php работает (... и перестанет работать через 1 день ...) Я полностью запутался .. .

user2968688 20.10.2018 22:41

Я столкнулся с той же проблемой. Вы нашли решение?

Delphinium 20.04.2020 09:49
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
63
0

Другие вопросы по теме