通过localhost打开PHP文件出现HTTP ERROR 500报错如何解决?
问题排查解决思路
首先明确两个现象的本质:
- 从
localhost/superschool/index.html自动跳转到index.php是正常逻辑,是你在index.html中写的<meta http-equiv="Refresh" content="0;url=index.php">标签实现的跳转,不属于异常。 - 页面返回HTTP 500错误是PHP服务端运行出错导致的,浏览器控制台的
crbug/1173575, non-JS module files deprecated是Chrome内核的通用弃用提示,和本次500错误无关,不需要关注。
你可以按以下步骤逐步排查问题:
- 第一步:开启PHP错误显示
打开XAMPP控制面板,点击Apache模块右侧的「Config」按钮,选择php.ini配置文件,搜索display_errors配置项,将值修改为On,再搜索display_startup_errors也修改为On,保存配置后重启Apache服务。重新访问页面即可看到具体的PHP错误信息,直接定位问题根源。 - 第二步:优先排查代码常见错误点
对照你提供的index.php代码,最容易触发500错误的原因有以下几类,你可以先核对:- 检查
defaultLang.php、language.php、lib.php三个引入文件是否和index.php存放在同一目录,文件名是否存在大小写、拼写错误,文件缺失会直接导致后续依赖的类、函数无法调用。如果不确定是否是引入问题,可以暂时把include替换为require,文件不存在时会直接抛出明确的文件缺失错误。 - 检查
lib.php中是否定义了DataList类,代码中$x = new DataList如果找不到对应类定义会直接抛出致命错误触发500。 - 检查
getTableList()、logOutUser()、redirect()这些自定义函数是否在引入的文件中存在定义,未定义函数会直接触发500错误。 - 检查后续引入的
login.php、main.php文件是否存在、语法是否正确。
- 检查
- 第三步:查看Apache错误日志
如果开启错误显示后页面还是没有具体报错,可以直接查看Apache的错误日志:XAMPP控制面板Apache模块右侧点击「Logs」按钮,选择error.log,拉到日志最底部即可看到最近的错误记录,会精确标注错误原因和对应的代码行号。
内容的提问来源于stack exchange,提问作者김민서
相关产品推荐
相关产品推荐

