6

我已将 PHP 应用程序安装到共享托管 Web 服务器上。我得到一个500 Internal Server Error. 我似乎无权访问任何日志文件,因此我希望错误页面暂时提供错误的详细信息。

4

5 回答 5

22

尝试:

error_reporting(E_ALL);
ini_set('display_errors', '1');

在文件的顶部。

于 2009-11-17T20:38:15.623 回答
4

如果 Jeremy Morgan 的解决方案不起作用,请尝试使用set_error_handler(). 通常有关应用程序状态的一些信息($GLOBALS 等)就足够了,但是 PHP 会(至少尝试)向您传递有关错误发生的位置和错误类型的各种信息。

另外,尝试使用“分而治之”的调试方法。从大约一半的文件开始,如果它仍然崩溃,则向上扩展,如果它运行到该点,则向下扩展。如果你不想删除你的代码,要么删除代码,要么/* comment out */使用__halt_compiler()特殊指令让 PHP 忽略文件中的所有剩余数据。

最后,让我疯狂尝试修复它的一件事是所谓的Byte Order Mark。PHP 正在评估文件开头的 BOM,导致它发送输出,并在尝试发送标头等时导致问题。可能不是您的问题,而是值得拥有的知识。

于 2009-11-17T20:48:47.787 回答
2

我怀疑你是从 PHP 中得到这个错误的。在共享主机上,应用程序的默认 .htaccess 配置更有可能导致错误。

我的猜测是没有RewriteBase集合的 mod_rewrite。

于 2009-11-17T20:40:54.807 回答
1

查看其中的值phpinfo();以查看是否有任何突出...将其放在代码中的某个位置,它应该显示一堆 php 版本信息

于 2009-11-17T20:43:25.483 回答
-1

“内部服务器错误”不是 PHP 错误(顾名思义)。因此,您要么必须查看您的服务器日志(您似乎无权访问),要么您无法通过 PHP 对其进行任何处理。

于 2009-11-17T20:40:51.407 回答