php的500错误几乎是我最讨厌看到的东西,因为它告诉我一句废话“服务器内部错误”之外,什么内容都没提供。不过碰到问题总要想办法解决,这里收集了一些Wordpress碰到500错误的可能原因和解决方法。
碰到500错误首先要干的不是想着怎么去解决它,而是要先想想是你在做过什么之后,让服务器出现了500错误。倘若你什么都没做,只是某天早上起来的时候就发现自己的Wordpress挂了。那么首先建议你重启一下服务器。很多情况下,这样问题就被解决了。这种情况下多半是服务器不稳定导致的。
之后,可以的话,尝试把wordpress根目录下的wp-config.php中的define(‘WP_DEBUG’, false)改成true。并添加ini_set(‘display_errors’,’Off’);再次重新访问网站,也许这个时候服务器就会把错误信息显示出来,之后就是自己找办法解决错误了。问题解决后记得把wp-config.php的内容改回来。
最常见的500错误,是由于更换主题导致的。当你更换完主题后发现网站访问不了了,而后台管理界面依然能访问的话,首先去查看一下新换的主题的权限是否足够,一般主题文件夹设成755和文件设成644比较好。如果不是权限的问题,最好仔细阅读一下主题的说明,因为这多半是因为主题用到了某个你没有安装的插件。如果所有需要的插件都已经安装,并且Wordpress的版本满足插件需求,尝试更新一下缓存,因为缓存插件可能会和某些主题有冲突,如果依然不行的话,您不妨考虑换个主题吧。因为网上流传的主题中很多本身就是不完善的。当然,我不阻止你尝试自己动手修改主题源代码。
安装完插件后产生的500错误也同样可以遵循上面的步骤进行排查。
还有一种常见的错误是在你在修改permalinks之后,导致的网页无法访问。这个多半是由于你的.htaccess文件没有配置好,可以看一下你的Wordpress根目录下有没有一个.htaccess的文件。如果没有,创建一个,其内容为:
RewriteEngine On RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*domain.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://domain.com/$ [R=301,L]
还有一种常见的错误是由于一些缓存插件造成的,你可以先在后台暂时停止到这些插件,如果网站可以访问,再重新启用这些插件,然后清除缓存。
如果网站依旧500错误,下载一份最新的Wordpress源文件,替换掉现有的源文件停用所有的插件,把主题切换到默认主题。如果网站可以访问,之后就用排除法找到引起错误的插件。至于怎么解决,要么停用掉插件不用,要么找个类似的替代品。
如果你有幸看到了如下的错误信息:“Error establishing a database connection”,那说明你的数据库挂了,确认一下你的数据库连接信息没有问题(在wp-config.php中),重启下数据库。顺便建议您养成一个好习惯,经常备份一下数据库,有备而无患嘛。
当然还有一种原因是添加了:发布文章主动推送到百度的代码,这个在张戈博客有分享,如果你把代码去掉,不产生500错误,说明代码不适合你用,你可以换一种代码再试试。
引起500的错误的原因还有很多,一时只能想起这么多了。欢迎您能在留言中帮我补充,不吝赐教。
最后要说的就是,500错误不一定是由你自己造成的,一个垃圾的主机提供商造成你博客500错误的概率要比你自己造成的大的多。可能的话,去找一家好的Wordpress虚拟主机提供商吧,可以为您省下好多心。
噢!评论已关闭。