我已将 PHP 应用程序安装到共享托管 Web 服务器上。我得到一个500 Internal Server Error
. 我似乎无权访问任何日志文件,因此我希望错误页面暂时提供错误的详细信息。
5 回答
尝试:
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。
查看其中的值phpinfo();
以查看是否有任何突出...将其放在代码中的某个位置,它应该显示一堆 php 版本信息
“内部服务器错误”不是 PHP 错误(顾名思义)。因此,您要么必须查看您的服务器日志(您似乎无权访问),要么您无法通过 PHP 对其进行任何处理。