Я запускаю ubuntu 10.04 + nginx + php-fpm 5.4
Если я установил display_errors = On
в php.ini, все ошибки будут напечатаны. Если вместо этого я отключил это, а затем использовал ini_set ('display_errors,' 1 '); непосредственно в скрипте они будут отображаться, а не ошибки разбора, просто пустая страница. Я тоже пытался играть с error_reporting и E_STRICT, но я не мог найти способ!
Если вы отключите display_errors
в php.ini
, а затем включите его в своем PHP-скрипте, используя ini_set()
, он будет включен только после того, как строка, содержащая этот вызов ini_set()
, была выполнена .
Ошибки парсера возникают до того, как скрипт PHP даже запускается – когда файл PHP разбирается (следовательно, имя «parse error») .
Это означает, что они встречаются до того, как ваш ini_set()
имеет даже возможность выполнения – это означает, что в вашем случае display_errors
не включен, когда возникает ошибка синтаксического анализа; и, как следствие, вы ничего не получаете.
Помимо включения display_errors
, вы также можете просматривать журналы ошибок. Как правило, запуская Ubuntu + apache, ваш журнал ошибок будет в /var/log/apache2/error_log
. Чтобы в реальном времени смотреть, что происходит, вы запускаете что-то вроде tail -f /var/log/apache2/error_log
.
Иногда это может быть более простым, чем суета с настройками php.
здесь я через несколько лет после этого был дан ответ, но я нашел способ обойти это.
Для сценария, который я пишу, я создал второй скрипт, который включает директивы ini_set (), за которым следует include для сценария, над которым я действительно работаю.
Для этого здесь test_run.php
<?php ini_set('display_errors', '1'); ini_set('error_reporting', E_ALL); include('./my_script.php'); ?>
в<?php ini_set('display_errors', '1'); ini_set('error_reporting', E_ALL); include('./my_script.php'); ?>
Попробуйте error_reporting(E_ALL);
, Или документы