【发布时间】:2010-12-17 14:52:02
【问题描述】:
我已将 PHP 应用程序安装到共享托管 Web 服务器上。我收到了500 Internal Server Error。我似乎无权访问任何日志文件,因此我希望错误页面暂时提供错误的详细信息。
【问题讨论】:
标签: php error-logging
我已将 PHP 应用程序安装到共享托管 Web 服务器上。我收到了500 Internal Server Error。我似乎无权访问任何日志文件,因此我希望错误页面暂时提供错误的详细信息。
【问题讨论】:
标签: php error-logging
尝试:
error_reporting(E_ALL);
ini_set('display_errors', '1');
在文件的顶部。
【讨论】:
如果 Jeremy Morgan 的解决方案不起作用,请尝试使用 set_error_handler() 创建您自己的日志文件。通常有关应用程序状态的一些信息($GLOBALS 等)就足够了,但 PHP 会(至少尝试)向您传递有关错误发生位置和错误类型的各种信息。
另外,尝试使用“分而治之”的调试方法。从大约一半的文件开始,如果它仍然崩溃,则向上扩展,如果它运行到该点,则向下扩展。如果你不想删除你的代码,要么/* comment out */ 要剪切的代码,要么使用__halt_compiler() 特殊指令让PHP 忽略文件中的所有剩余数据。
最后,让我疯狂尝试修复它的一件事是所谓的Byte Order Mark。 PHP 正在评估文件开头的 BOM,导致它发送输出,并在尝试发送标头等时导致问题。可能不是您的问题,而是值得拥有的知识。
【讨论】:
我怀疑你是从 PHP 中得到这个错误的。在共享主机上,应用程序的默认 .htaccess 配置更有可能导致错误。
我的猜测是没有 RewriteBase 设置的 mod_rewrite。
【讨论】:
.htaccess通常是我调试时的第一个罪魁祸首,但他从来没有说过他用的是Apache。
查看phpinfo(); 中的值,看看是否有任何突出之处...把它放在代码中的某个位置,它应该会显示一堆 php 版本信息
【讨论】:
“内部服务器错误”不是 PHP 错误(顾名思义)。因此,您要么必须查看服务器日志(您似乎无权访问),要么无法通过 PHP 对其进行任何处理。
【讨论】: