Не показывать ошибки PHP

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

У меня очень простой код:

<?php echo "Hello world"; ?> 

Это отлично работает.

Если я запустил следующий код (ошибка синтаксического анализа), я не получаю никаких ошибок, но текст «Hello world» все еще отображается:

 <?php echo "Hello world"; piwejfoiwjefoijwef ?> 

Если я помещаю ошибку синтаксического анализа, прежде чем код, который он делает, однако, не отобразит «Hello world»:

 <?php piwejfoiwjefoijwef echo "Hello world"; ?> 

Когда я печатаю phpinfo (в том же файле, в том же каталоге), у меня есть следующие настройки: display_errors On display_startup_errors On error_reporting 1

Если я попытаюсь также настроить отчет об ошибках внутри сценария и запустить его со следующим кодом, я все равно не получаю никаких ошибок или предупреждений, но отображается текст «Hello world»:

 <?php error_reporting(E_ERROR | E_WARNING | E_PARSE); ini_set('display_errors', '1'); echo "Hello world"; owieufpowiejf ?> 

Мой файл php.ini имеет следующие значения (и я перезапустил Apache):

 error_reporting = E_ERROR & ~E_DEPRECATED display_errors = On display_startup_errors = On 

Я запускаю Apache / PHP / MySQL на AMI Amazon с 64-разрядным AWS EC2. Я не настолько разбираюсь в настройках сервера. Ошибки начались, когда я перешел на сервер Amazon. Кроме того, сообщение об ошибках сервера и Apache / PHP работает безупречно.

Пожалуйста, помогите мне в том, что я могу сделать, чтобы исправить эту проблему.

Благодаря!

Это уведомление.

 error_reporting(E_ALL); 

показывает это.

Используемый мной код:

 <?php error_reporting(E_ALL); ini_set('display_errors', '1'); echo "Hello world"; owieufpowiejf ?> 

Вывод:

Привет мир

Примечание: использование неопределенной константы owieufpowiejf – предполагается «owieufpowiejf» в / code / 14B4LY в строке 5

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

Вы можете попробовать error_reporting(-1)

-1 – максимальное значение error_reporting может принимать и всегда будет.

У меня была эта проблема и исправлена ​​ее, отредактировав /etc/php.ini на display_errors = On

В своем PHP-скрипте попробуйте установить error_reporting на E_ALL и посмотреть, получаете ли вы уведомление.

 error_reporting(E_ALL) 

Проверьте документацию: http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

Создайте файл .htaccess в своем основном каталоге и поместите:

 php_flag display_errors on php_value error_reporting 7 

Конечно, на вашем сервере должен быть включен mod_rewrite.

Вызов error_reporting() в том же скрипте, который содержит синтаксическую ошибку, никогда не будет работать.

 <?php echo "Hello world"; piwejfoiwjefoijwef ?> 

Этот сценарий, в частности, не вызывает вас синтаксической ошибки, поскольку он не содержит синтаксической ошибки. Это всего лишь выражение echo и голая константа во второй строке. Конечная точка с запятой может быть опущена непосредственно перед ?>

Вы получили бы уведомление, если бы оно не было отключено. Опять же, вы не E_NOTICE в свой другой тест.