PHP в Linux (LAMP) не отображает причину ошибок при сбое кода?(Ubuntu) - PullRequest
1 голос
/ 03 августа 2010

Я был пользователем Windows и использовал Wamp. Каждый раз при сбое PHP-кода браузер отображал что-то вроде этого: error in line number xx.

Я последовал установке этого урока и все заработало.

Теперь, когда код не работает, PHP просто отображает пустую страницу.

Любые предложения?

(я использую Ubuntu 10.04).

Ответы [ 4 ]

5 голосов
/ 15 мая 2011

Я знаю, что это старый пост, но у меня была та же проблема, и я обнаружил, что после error_reporting есть опция display_errors, измените ее на On.

2 голосов
/ 14 сентября 2011

Старый вопрос, как заметил Gurnarok , но, тем не менее, вот ответ.

Стандартная установка сервера LAMP в Ubuntu делает это.Я просто называю это «производственным» режимом, то есть ваши страницы не отображают ошибки (для ваших пользователей), когда ваш сайт запускается.Мне скорее нравится, что он делает это, но сначала я тоже был сбит с толку.

Вместо того, чтобы редактировать мой файл php.ini, чтобы перейти в режим «разработки», я просто помещаю это в начало моего PHPфайлы (или PHP file , в моем случае, так как я обычно все пропускаю через index.php):

ini_set('display_errors', true);
error_reporting(E_ALL ^ E_NOTICE);

Итак, причина, по которой error_reporting сама по себе неделать это, скорее всего, потому что display_errors не установлен на true в вашем файле php.ini.Приведенный выше код должен об этом позаботиться.

Я предпочитаю исключить уведомление PHP «Уведомление», такое как уведомления о несуществующих ключах массива (самое распространенное Уведомление, в моем случае), но выя могу просто изменить это значение на error_reporting(E_ALL);

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

1 голос
/ 10 ноября 2011

Спасибо, Фил, ваш ответ заставил меня задуматься, и мне наконец удалось исправить проблему, которая беспокоила меня в течение нескольких недель, когда моя установка PHP вообще не отображала ошибки на HTML-странице (за исключением иногда уведомляющего сообщения, но никогда не возникало никаких синтаксических ошибок). так далее). Несмотря на то, что все остальные параметры ошибок были установлены на «on», а log_errors - на «on», а имя файла только для уведомлений журнала регистрировалось в файле журнала, но никогда не было синтаксических ошибок. Не очень полезно на сервере разработки :)

Думал, что я опубликую свои выводы здесь в надежде, что эта информация может помочь кому-то еще с той же проблемой, что и Google, не очень помог в ее устранении.

В более старых версиях PHP до PHP 5 на моих серверах разработки всегда было установлено, что мой параметр сообщения об ошибках в PHP ini установлен на "E_ALL & E_NOTICE". В более поздних версиях PHP (в любом случае, с моей установкой Ubuntu Oneric) использование этого параметра, по-видимому, вообще не отображает вывод на странице HTML независимо от других настроек php.ini (например, display_errors = on и т. Д.). Установка значений на лету на странице PHP тоже не помогла, так как кажется, что значение php.ini переопределяет настройку для каждого файла.

Я изменил значение error_reporting только на «E_ALL», и теперь оно отображает синтаксические ошибки. Настройка, рекомендованная в php.ini для сервера разработки (E_ALL | E_STRICT), также не работает для меня, поэтому большое спасибо. +1 тебе:)

1 голос
/ 03 августа 2010

Найдите php.ini в /etc/php5/apache2/ и установите значение error_reporting в E_ALL. Как:

error_reporting = E_ALL

Или же проверьте error.log, если ваш виртуальный хост предоставляет такой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...