2024年1月21日发(作者:)
关于 500 internal server
error 错误
今天在用ajax请求数据的时候,突然出现了500错误,就很纳闷,平时都这么写的代码,怎么会突然报错,查了一下500错误的原因,应该是服务器的问题,有以下几种可能(现在把答案整理下来,避免下次犯同样的错误):
1、服务器资源超载
如果没对网站进行什么更改的话,最可能出现的一种情况。即当某一进程占用服务器太多资源的时候,会出现500错误,或者nginx如果开启了access log,太多的磁盘空间被占用,同样会出现500错误,建议在不需要的情况下,最好关闭access log。
2、nginx配置文件错误
这里不是指语法错误,nginx如果配置文件有语法错误,启动的时候就会提示。当配置rewrite的时候,有些规则处理不当会出现500错误,请仔细检查自己的rewrite规则。如果配置文件里有些变量设置不当,也会出现500错误,比如引用了一个没有值的变量。
3、文件权限设置错误
500错误还有可能是对文件设置了不正确的权限:
后台目录和文件的权限默认应该是755,而图片,文字等html文件应该是644,所以如果在刚刚上传文件后出现500错误,应该主要检查文件权限设置。
可以使用FTP软件选中所有文件,然后批量修改文件权限。
开始我以为是配置文件的问题,但好像改了也没用,各种方法都试过了,还是报同样的错误,在折腾了许久之后,偶然发现php代码在执行完数据库查询操作后没关闭数据库通道(此时还没意思到错误在这儿),于是添加了一行代码关闭数据库。
当我再次请求时,突然发现没报错了,惊喜万分,回过头来想一想,终于发现了这个问题,我猜想应该是因为php代码在执行完数据库查询操作后没有关闭数据库,导致进程一直在占用服务器资源,于是出现了500错误,也就是上面说的第一种情况。
在查找过程中,看到这样一片帖子
刚开始还欣喜终于找到原因了,这个情况跟我很相似,以为这就是正确答案,结果我根本没怎么看懂,在服务器上也没找到webservices(我是小白,都不知道webservices是个啥东西,请原谅我的无知),最后白高兴一场,因为他错误的地方跟我根本就不一样!
今天把这个问题写下来,避免下次再犯同样的错误,然后你还得找半天。这也是我第一次做笔记,文笔不够。以后要学会记录这样的问题。在成为大牛的路上爬行。。。


发布评论