【发布时间】:2012-07-29 17:55:27
【问题描述】:
我已经使用 *Apache2/MySQL/PHP5 在 Amazon AWS 上安装了全新的 Ubuntu Server 12.04 LTS。当我运行 PHP 脚本并遇到错误时,我没有看到任何来自 PHP 的错误报告,我看到的只是
HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfil the request.
我检查了我的/etc/php5/apache2/php.ini 文件,据我所知应该设置错误报告。该文件的内容(关于错误)是:
; display_errors
; Default Value: On
; Development Value: On
; Production Value: Off
; display_startup_errors
; Default Value: Off
; Development Value: On
; Production Value: Off
; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
谁能给点建议?如果我尝试 $obj = new ObjectDoesntExist; 之类的东西,它不会告诉我 Fatal error: Class 'ObjectDoesntExist' 它会给我一个服务器 500 错误。
有什么建议吗?
* 我安装的模块是:mysql-server mysql-client apache2 php5 libapache2-mod-php5 phpmyadmin。除此之外,它是 Ubuntu Server 12.04 LTS 的完全基础安装
编辑:
如果我在脚本开头使用ini_set('display_errors', '1');,它会正常显示错误,但是如何在整个站点范围内启用?
【问题讨论】:
-
如果您的 apache 服务器,您是否在 error_log 中看到任何内容?听起来 mode_php 只是不起作用。仅包含
<? phpinfo(); ?>的 php 文件会给出输出吗? -
你检查过apache错误日志
/var/log/apache2/error.log吗? -
您的 php.ini 中的所有这些行都被注释掉了。找到
display_errors的声明位置并将其打开。 -
<?phpinfo(); ?>按预期提供输出。 Apache 错误日志显示了我所期待的 PHP 错误(意外的 T_STRING / 无法打开所需文件)以及我识别的其他内容(Apache 重新启动)。 -
@stevether 我找到了
display_errors和display_startup_errors并将它们的值从Off更改为On,但仍然是同样的问题?我是否必须取消注释它们上面与我最初发布的注释行相同的行?
标签: php ubuntu-12.04 error-reporting internal-server-error