Ошибки php parse не будут отображаться

Я запускаю 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); , Или документы