#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
, где сбой соответствует спецификациям.