我还浏览了其他几个问题,并尝试了与错误报告相关的各种解决方案,包括
ini_set('display_errors',true);
error_reporting(E_ALL);但我还是被死神的白屏卡住了。这似乎只有在我使用自己的面向对象类时才会在页面上发生。但是,OOP脚本执行成功,但我无法显示HTML。偶尔,我可以让它捕获异常,但它是间歇性的。
例如,我有一个this方法:
public function getSubdomain() {
$this->data->query('SELECT * FROM users WHERE email=:email');
$this->data->bind(':email', $this->email);
$this->data->execute();
if($this->data->rowCount() == 0)
throw new Exception('There is no account associated with this e-mail address.');
$curr = $this->data->single();
return $curr['subdomain'];
}^^这将执行得很好,我可以使用die($curr['subdomain']);从OOP类打印它,但是如果我尝试使用PHP在页面上显示它,什么都没有。没有错误,所以日志,没有源代码,什么都没有。
我在Apache中使用MultiViews,我的DB查询是使用一个自定义的PDO类完成的。
我跑过了
# php -l new.php直接在服务器上,它会报告
No syntax errors detected in new.php当我在WAMP本地运行完全相同的设置时,它可以正常工作,但是一旦我迁移到我的CentOS/Apache/PHP机器上,所有的地狱都被打破了。MySQL在单独的服务器上,但没有问题。
我可以根据需要提供更具体的代码(包括我自己的和来自服务器的conf文件),我只是想避免由于问题的性质而带来的任何武断。有什么建议(例如,错误报告的不同方法,等等)?
发布于 2013-10-28 23:59:30
大多数时候,当我们从WAMP转移到LAMP时出现错误,这是大小写敏感的问题。因为windows不是CS,但是Linux是很多可以破解的。
我会:
在执行
发布于 2013-11-03 03:49:47
我还遇到过几次PHP的白屏死机。根据我的经验,您可以做的最有帮助的事情之一是使用php.ini:http://us1.php.net/manual/en/errorfunc.configuration.php#ini.error-log中的error_log指令确保PHP记录到文件中。
如果在已经定义的PHP错误日志或Apache错误日志中仍然看不到任何有用的信息,则可能需要通过代码添加调试输出,以确定发生致命错误的位置。为此,您可以打开一个文件句柄并定期向其写入,或者只需使用error_log()函数输出调试消息。
https://stackoverflow.com/questions/19626013
复制相似问题