2016-06-25 1 views
0

Я взял старый проект, и я заметил, что 500 ответов, отправленных в браузер, не содержат информации. Поскольку я работаю над этим на местном уровне, я бы хотел посмотреть, что происходит.PHP Не отправляет трассировку стека или сведения об ошибке с ошибкой сервера 500

Я пытался сделать свой собственный новый файл с follwing

<?php 
throw new Exception("bleh"); 
echo "test"; 

?> 

Это делает возвращение 500, но опять-таки пустой ответ. Это мой php.conf. За исключением двух последних строк, это сырье из ням установить на Cent OS 7

# 
# Cause the PHP interpreter to handle files with a .php extension. 
# 
<FilesMatch \.php$> 
    SetHandler application/x-httpd-php 
</FilesMatch> 

# 
# Allow php to handle Multiviews 
# 
AddType text/html .php 

# 
# Add index.php to the list of files that will be served as directory 
# indexes. 
# 
DirectoryIndex index.php 

# 
# Uncomment the following lines to allow PHP to pretty-print .phps 
# files as PHP source code: 
# 
#<FilesMatch \.phps$> 
# SetHandler application/x-httpd-php-source 
#</FilesMatch> 

# 
# Apache specific PHP configuration options 
# those can be override in each configured vhost 
# 
php_value session.save_handler "files" 
php_value session.save_path "/var/lib/php/session" 

# my adds 
php_value error_reporting "ALL" 

Последние несколько строк хвостохранилища/вар/Журнал/HTTPD/error_log являются

[Sat Jun 25 17:41:03.269154 2016] [auth_digest:notice] [pid 2804] AH01757: generating secret for digest authentication ... 
[Sat Jun 25 17:41:03.269537 2016] [lbmethod_heartbeat:notice] [pid 2804] AH02282: No slotmem from mod_heartmonitor 
[Sat Jun 25 17:41:03.280894 2016] [mpm_prefork:notice] [pid 2804] AH00163: Apache/2.4.6 (CentOS) PHP/5.4.16 configured -- resuming normal operations 
[Sat Jun 25 17:41:03.280915 2016] [core:notice] [pid 2804] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' 

Спасибо для какой-либо помощи я смотрел на это, и я чувствую, что мне не хватает чего-то очевидного.

+0

Проверьте журналы ошибок на сервере. –

+0

Я привязал последние несколько строк/var/log/httpd/error_log и добавил его в исходное сообщение для лучшего форматирования – user49438

+1

не совсем ответ, но посмотрите [whoops] (https://github.com/filp/ кричит), это сделает отладку намного проще! – Pevara

ответ

0

Я смог решить это не путем изменения php.conf, как я был выше, но путем изменения /etc/php.ini, у которого была установлена ​​настройка display_errors. Установив его в On, ошибки возникли в браузере, поскольку я хотел.

+0

, вы можете изменить это во время выполнения, также используя функцию 'ini_set()' (например, в каком-то файле bootstrap/config, еще лучше сделать это зависеть от некоторого «режима отладки», поэтому его можно легко отключить в процессе производства) –

+0

Да, я сделал это в других проектах, но это устаревшее приложение, которое довольно разбросано. Я был обеспокоен тем, что в разных местах он может отличаться друг от друга и хочет чего-то более глобального. Я все равно должен сделать глобальный поиск ini_set(), чтобы увидеть, с чем я против, теперь, когда вы упомянули об этом. – user49438