Apache silenty останавливает выполнение PHP-скрипта

#php #apache #vqmod

#php #apache #vqmod

Вопрос:

Я использую Apache 2.4.23 и PHP 5.6. Все работает нормально, за исключением PHP-скрипта, который молча отбрасывается в середине его выполнения в определенном месте.

«display_errors» включен, а error_reporting имеет значение E_ALL в php-5.6.ini. У меня есть несколько инструкций error_log, которые я использую в качестве трассировки, чтобы определить, где останавливается выполнение, и теперь окружил соответствующий раздел с помощью try / catch, который выполнит error_log с исключением, но снова только тишина, как в error_log Apache, так и в php_error.log.

Максимальное время выполнения и лимит памяти уже увеличены в два раза по умолчанию, и каждый error_log печатает microtime() вместе с ним, показывая, что скрипт выполняется в течение одной секунды.

РЕШЕНИЕ: VQMOD вмешивался в работу Woocart, в частности, в те части кода, которые Apache остановил от выполнения. После удаления соответствующих XML-файлов VQMOD все снова прошло нормально.

Комментарии:

1. Вы проверили apache error_log?

2. если вы это сделаете try { ... } catch (Exception $ex){ } , то вы обработаете исключение самостоятельно, и оно не будет передавать исключение в журнал ошибок, только если вы снова создадите исключение, например catch (Exception $ex){ throw $ex; }

3. в вашем php.ini добавьте строку типа error_log = /usr/local/var/log/apache2/php_error_log (любой путь, который вам удобен. Я получаю там много «непойманных смертей». Перезапустите apache и php-fpm, если вы его используете.

4. Возможно, вы столкнулись с какой-то ошибкой php, попробуйте прокомментировать весь скрипт и запустить, затем немного раскомментируйте его с начала и запустите, если все в порядке, раскомментируйте еще больше и запустите, таким образом, вы могли бы отделить строку, которая вызывает проблемы

5. @Букси … ошибка, как насчет использования IDE с Xdebug, точками останова и возможностями проверки переменных / состояния? Кроме того, это также может быть где-то php feature , где сбой соответствует спецификациям.