如何解决wordpress内部服务器错误

2013/05/29

wordpress内部服务器错误(HTTP 500 Internal Server Error)是一个常见的问题,当然这个错误不仅限于wordpress,任何web程序都有可能出现这个内部服务器错误。今天我们的重点放在wordpress程序上。下图显示的就是一个典型的500内部服务器错误。

internalservererror

 

本教程将重点谈到以下二个问题:

  • 500服务器错误的原因
  • 500服务器错误的解决办法

1.500服务器错误的原因

这是一个比较头痛的问题,因为其没有返回任何信息给wordpress网站管理员。导致发生这个问题的原因有几种。首先 .htaccess文件(php+mysql环境)的不标准化是导致这个错误的常见原因之一。有的wordpress网站管理员为了各种需要,在 .htaccess文件里添加了很多东西或收到被黑客串改。再就是wordpress服务器资源耗尽,这一方面是主机本身的限制而你的站点访问徒增,另一方面是折腾了一些插件导致的。然后就是函数的错误,有时我们在functions.php加入了错误的代码,最典型的莫过于引号没有使用英文引号或代码不完整(喜欢直接粘贴代码的人员最易出现这个错误)。

2.如何解决wordpress内部服务器错误

解决的办法我们只有通过瞎子摸象的办法,一个个的实验进行排除。

2.1排除 .htaccess错误

方法是通过ftp登录到主机空间,把 .htaccess文件重命名 .htaccess.bak。现在尝试登录wordpress后台,如果能够登录,则说明是此 .htaccess文件导致的内部服务器错误。然后到设置-固定链接,设置一下固定链接,重新生成一个标准的 .htaccess文件。如果还是不能登录,说明可能不是这个导致的。不过暂时不要修改回来,以防是多重原因导致的。

2.2增加PHP内存限制

这是大家比较头痛的,在上传图像或登录wordpress,或安装主题,或安装插件时都会遇到。而这些会可能直接导致服务器内部错误。遇到这个问题就是要增加PHP内存限制。如果你能控制服务器,在php.ini文件里找到

memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)

有的是32M,把这个值修改为128M

遗憾的是网站管理员往往不能控制这个,所以我们针对wordpress拿出最后的杀手锏,为什么这么说,因为这个方法很有效,笔者使用这个方法解决了好几个类似问题。

1)新建的一个空白的文件,命名为php.ini。

2)打开这个文件,输入:memory = 128M,如果这个不行使用memory_limit = 128M。

3)把这个文件上传到/wp-admin/内,主意不是网站根目录。

关于这个问题,详情可阅读:wordpress十大常见错误之五:内存错误

2.3重命名插件或主题

如果上面的能解决问题,说明有可能是某个插件消耗了你的资源。所以接下来最好测试一下是那个插件消耗了你的资源。故把原来的plugins命名为plugins.bak,然后重新新建一个plugins文件夹。接下来逐步把原来的插件一个个移到新建的目录里进行测试。

Plugin Performance Profiler (P3)使用这个插件可以测试你的插件使用情况。

如果不是插件问题,把目标转移到主题上,命名原主题文件夹名为一个不同的名字,即可切换到默认主题。

2.4覆盖文件

还有一种情况就是wordpress本身的系统由于某种原因出现了问题。这是被很多人忽略的。所以这个适合,下载同版本的wordpress,重新覆盖一下。不用担心会修改你的内容,因为设置在数据库里,所以不会修改原来的设置,也不会丢失数据的。

2.5联系主机商

如果上面的情况不能解决你的问题,最后就是联系你的主机商,看看是不是CPU值太高,如果是虚拟主机,是不是其它的网站占用资源太多导致的。总之主机商那里肯定可以获得更多关于500服务器内部错误的信息。如服务器日志。

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注