Intereting Posts
Способ / кодирование для выполнения списка активности / журнала Электронная почта с PHP нарушила кодировку заголовка субъекта Загрузка, извлечение и повышение производительности PHP PHP-сессии с отключенными кукисами, работает ли это? 'FOS \ UserBundle \ FOSUserBundle' не найден Ошибка фабрики PHPExcel при чтении XML из URL-адреса Ошибка CakePHP: Таблица данных acos для модели Aco не найдена Нужна помощь с reCAPTCHA – продолжайте получать неверный код-captcha-sol usort (): Массив был изменен функцией сравнения пользователей Присвоение возвращаемого значения new по ссылке устарело Как запустить профайлер XDebug для скрипта PHP в командной строке? Ошибка при попытке запустить HipHop в «режиме 2 (компиляция HipHop во временном каталоге и запуск скомпилированной программы из командной строки») Соль и пароли Как я могу сделать эту концептуальную модель лучше? Интерактивная обработка файлов с использованием PHP, jQuery и Ajax

PHP FPM возвращает HTTP 500 для всех ошибок PHP

Я запускаю nginx с PHP-FPM. Моя конфигурация nginx для обработки php-файлов выглядит так:

location ~ \.php$ { set $php_root /home/me/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } 

Теперь у меня есть простой php-файл:

 <?php ech "asd" asd"" ?> 

Да, с очевидной ошибкой. Когда я пытаюсь получить доступ к файлу php, вместо отслеживания синтаксической ошибки, я всегда получаю ошибку внутреннего сервера HTTP 500. Я пытался использовать error_reporting(-1); но все равно он всегда возвращает HTTP 500. Как мне заставить PHP печатать точную ошибку вместо того, чтобы возвращать общий HTTP 500?

Попробуйте найти следующую строку в php.ini :

  display_errors = Off 

затем включите его

Чтобы опубликовать более полный ответ, я использовал производственную версию php.ini, которая имеет display_errors = Off. Вместо того, чтобы включать его в глобальном масштабе, то, что я делаю сейчас, для файлов, для которых мне требуется отчет об ошибках, я использую ini_set('display_errors', 'On'); в начале файла.

Также я столкнулся с проблемой, и я установил display_errors = Off в php.ini но он не работает. Затем я нашел php[display_errors]=off в php-fpm.conf , и он переопределит значение php.ini и он будет работать.

Ошибки отображения влияют только на то, что ошибки печатаются на выходе или нет.

Если у вас есть ошибки журнала, ошибки все равно будут отсутствовать в журнале, если дисплей не выключен, что не является ожидаемым поведением.

Ожидаемое поведение – если журнал включен, там обнаруживаются ошибки. Если дисплей включен, ошибки отображаются на экране / выходе. Если оба находятся на эррос, они находятся на обоих.

В текущих версиях есть ошибка, которая лишается этого.

Для Ubuntu 12.10 в файле php-fpm-pool-config:

 php_flag[display_errors] = on 

В файле php.ini:

 display_errors = On