Как получить ошибки отображения на PHP? (Я добавил ini_set и error_reporting, но просто дает 500 ошибок)

Итак, у меня нет никаких ошибок на моей текущей веб-странице, но я хочу видеть ошибку, когда они появляются, а не на странице ошибок HTTP 500. Я немного погулял по сторонам и думал, что эти две линии исправят все.

ini_set('display_errors', 'On'); error_reporting(E_ALL); 

ПРИМЕЧАНИЕ. У меня нет доступа к файлу php.ini, поскольку я использую сервер моей учетной записи школы.

Таким образом, я ввел ошибку (без точки с запятой после $ buggy), как в верхней части моей страницы:

 <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $buggy $x = 4 + 2; ... 

Однако я просто получаю ошибку сервера:

«На веб-сайте произошла ошибка при получении http://mywebpage.com/ . Возможно, она не работает для обслуживания или неправильно настроена».

Есть идеи?

РЕДАКТИРОВАТЬ:

Я переконфигурировал свой код:

 <?php include_once 'database/errorSettings.php'; ?> <?php $buggy // whoops $x = 4 + 2; ... 

errorSettings.php:

 <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); ?> 

Но он все еще не работает … неправильный способ перенастроить?

Related of "Как получить ошибки отображения на PHP? (Я добавил ini_set и error_reporting, но просто дает 500 ошибок)"

У вас есть ошибка синтаксического анализа. Они бросаются перед выполнением любого кода. Файл PHP должен анализироваться целиком до того, как любой его код может быть выполнен. Если в файле, где вы устанавливаете уровни ошибок, есть ошибка синтаксического анализа, они не будут вступать в силу к моменту возникновения ошибки.

Либо разбить файлы на более мелкие части, например, установить уровни ошибок в одном файле, а затем include другой файл, который содержит фактический код (и ошибки), или установить уровни ошибок за пределами PHP, используя директивы php.ini или .htaccess.

Вам нужно установить значение error_reporting в файле .htaccess. Поскольку существует ошибка синтаксического анализа, она никогда не запускает функцию error_reporting () в вашем PHP-коде.

Попробуйте это в файле .htaccess (если вы можете использовать его):

 php_flag display_errors 1 php_value error_reporting 30719 

Я думаю, что 30719 соответствует E_ALL, но я могу ошибаться.

Изменить обновление: http://php.net/manual/en/errorfunc.constants.php

 int error_reporting ([ int $level ] ) --- 32767 E_ALL (integer) All errors and warnings, as supported, except of level E_STRICT prior to PHP 5.4.0. 32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously 

Добавление к тому, что было сказано выше. Это ошибка синтаксического анализа, поэтому для отладки ошибки синтаксического анализа создайте новый файл в корне с именем debugSyntax.php. Поместите это в это:

 <?php /////// SYNTAX ERROR CHECK //////////// error_reporting(E_ALL); ini_set('display_errors','On'); //replace "pageToTest.php" with the file path that you want to test. include('pageToTest.php'); ?> в <?php /////// SYNTAX ERROR CHECK //////////// error_reporting(E_ALL); ini_set('display_errors','On'); //replace "pageToTest.php" with the file path that you want to test. include('pageToTest.php'); ?> 

Запустите страницу debugSyntax.php и отобразите ошибки разбора на странице, которую вы выбрали для проверки.

Просто напишите следующий код поверх файла PHP:

 ini_set('display_errors','on'); 

У меня была эта проблема при использовании PHP5.4 и Plesk 11.5

Так или иначе, сообщения об ошибках и отображения ошибок на странице конфигурации домена Plesk полностью перекрывали любые локальные настройки в .htaccess или PHP-скриптах. Я не нашел способа предотвратить это, поэтому используйте настройки Plesk, чтобы включить или отключить отчет об ошибках.

У вас могут быть настройки в php.ini, которые не позволяют локальному сайту переопределять эти параметры, возможно, выполняются панелью управления, используемой на вашем сервере.

Людям, использующим Codeigniter (я на C3):

Файл index.php перезаписывает конфигурацию php.ini, поэтому файл index.php, строка 68:

 case 'development': error_reporting(-1); ini_set('display_errors', 1); break; 

Вы можете изменить эту опцию, чтобы установить, что вам нужно. Вот полный список:

 1 E_ERROR 2 E_WARNING 4 E_PARSE 8 E_NOTICE 16 E_CORE_ERROR 32 E_CORE_WARNING 64 E_COMPILE_ERROR 128 E_COMPILE_WARNING 256 E_USER_ERROR 512 E_USER_WARNING 1024 E_USER_NOTICE 6143 E_ALL 2048 E_STRICT 4096 E_RECOVERABLE_ERROR 

Надеюсь, поможет.