如何清除wp-admin中的奇怪404错误?


8

我运行了一个约有70个活动插件的WordPress网站。

每隔一段时间,我会在突然出现的页面上得到一个随机的错误页面(“未找到”,尽管我没有检查标题是否为404)/wp-admin/

只需再次尝试即可解决该错误,但是如果在插件升级过程中发生错误(因为自动重新激活失败),将非常不便。我认为同一问题是我的仪表板上的某些模块有时无法加载的原因。

给定我已安装的插件列表,是否有人知道可能导致此问题的插件之间或插件之间的问题?

编辑:

主机信息:DreamHost; 我认为服务器正在使用Apache httpd运行自定义Debian构建


1
不要成为PITA,但这实际上是一个支持问题,而不是我们这里要讨论的内容;我要投票关闭。请改为访问http://wordpress.org/support。如果您进行了一些测试并且将您的问题缩小到不仅适用于您的情况,那么在这里可能会成为一个可接受的问题。再次,很抱歉这样,但是我们的WordPress答案应该适用于所有用户,而大量的支持请求将扼杀这一点。
MikeSchinkel 2010年

我同意,所以我也将投票关闭。
本·埃弗拉德

1
同意 投票因过于局限而关闭。
约翰·布洛赫

2
我投票不关闭。许多不熟悉WP的人在WP-Admin中可能会遇到404错误,最终归结为插件或主题中的错误,或者可能是它们对重写规则的影响(存储在wp-options或。 htaccess文件)。相反,我们应该做的是提供一般的故障排除步骤,可以更快地识别问题区域。
Volomike 2010年

好吧,即使这往往是一个支持问题,它也有足够的信息,至少可以提出一些快速解决问题的方法。
hakre 2010年

Answers:


6

我整天都遇到了404错误点火问题。

无论如何,我刚刚与Dreamhost技术支持人员聊天,他告诉我与他们拥有的用户帐户达到了进程内存资源限制(所有进程),而这正是导致与htaccess相关的奇怪问题的原因。我从一个根本不应该调用的htaccess文件中收到间歇性404错误!那是一个梦host以求的房子服务器。

显然,dreamhost使用的进程杀死机器人会在中间杀死一个Web进程,然后由于某种原因,(现在的僵尸)apache实际上试图完成其工作(尽最大努力使它毫不留情地退出子请求)是我最好的猜测)。它会在主http日志中引发500错误,但是这样做之后,它实际上触发了永远不应该触发的重写条件和规则(使用上述标准文件-f和目录-d htaccess文件),并且它没有不要写新的日志条目!一个新的(不可见的人)请求然后在htaccess文件的最后一行触发索引文件

当心dreamhost基本帐户中的资源限制!如果您超过了他们的极限,并且对mod_rewrite行有兴趣,您将看到仅适合万圣节之夜的奇怪事物-看不见的男人,出没的404鬼魂!不死族进程!僵尸阿帕奇!htaccess自己动起来!y!

希望这可以帮助您避免数小时的痛苦。


我的文件中肯定有很多mod_rewrite东西.htaccess。听起来这就是我正在发生的事情。我知道我的备份作业会达到内存限制,但不是针对“实际”请求。感谢您分享您的体验; 希望您的回答可以节省很多人的时间。
dgw

不只是Dreamhost。我从Dreamhost移到了其他地方的专用服务器,但始终都遇到此问题。
2012年

4

调试此错误的唯一方法是一次禁用一个插件,每次尝试在禁用另一个插件之前重现问题。首先从与WP管理有关的插件开始,然后再向下移至常规主题插件,小部件等。

检查您发现状态更好的“未找到”页面(浏览Opera并打开“信息”面板,该页面将显示标题,或者使用Firefox浏览并启用“网络”面板的Firebug)并在所有页面中进行搜索您的插件,看看他们是否可以直接提供它。如果不是,请查看Web服务器的日志以找出它无法提供的确切资源;插件可能正在执行一些重定向或重写操作,因此不一定是您在浏览器中看到的导致404的URL。


如果有70个插件,那么如果能找到一种方法来进行超快速操作而不必手动停用和测试每个插件(例如使用插件测试器文件),那真是太好了。
Volomike 2010年

我发现您已经用一个很好的技巧编辑了原始答案,以更快地找到答案。
Volomike 2010年

谢谢,asbjornu。我和家人休假回来后会考虑这样做。
dgw 2010年

我浏览了服务器日志,没有找到比“脚本头过早结束”更具体的内容。猜猜不可能那么容易...
dgw

3

我只能讲述自己的经历,到目前为止,我还没有找到一个“确定的”规则可以一口气解决所有问题。

DreamHost设置的主要问题在于,为了使内存消耗降至最低,这是永恒的斗争,这意味着要放弃尽可能多的功能-也就是说,所有这些都会减少带宽(对访问者有利!)或CPU(对访问者有利)。服务器,但DreamHost不能像控制RAM那样积极地控制CPU消耗。例如,这意味着要摆脱gzip的HTML + CSS(这将消耗CPU + RAM)或多个Minify插件中的任何一个(也会消耗RAM)。缓存越复杂(我喜欢使用W3 Total Cache,或者至少使用WP Super Cache),也会消耗更多的RAM。

同样,许多限制MySQL查询数量以提高性能的插件会消耗RAM。因此,要找到一个权衡点,让您仍然可以使站点保持良好的性能,同时又避免消耗宝贵的RAM,这是一项艰巨的任务!

到目前为止,我在繁忙站点上的最佳结果是取消选中“页面速度优化”和“额外Web安全”,这显然会占用大量RAM,而是依靠与W3 Total Cache和Cloudflare(免费的反向代理服务)结合使用。Cloudflare将有效地执行与“额外的Web安全性”模块相同的操作,但是由于它在DreamHost外部运行,所以很好。W3 Total Cache占用大量内存,但是一旦页面静态地本地存储,Cloudflare将非常有效地缓存它们-因此在编辑帖子时您可能会得到404/500,至少您的访问者不会体验到它们(Cloudflare也可以提供静态页面即使DreamHost给出404或500)。

另外,感谢本文,我发现FastCGI比“普通” CGI使用更多的RAM。而且由于PHP 5.3更好地管理RAM(更积极的垃圾收集,更少的内存泄漏),因此我已经实验性地切换到PHP 5.3 CGI(而非FastCGI),而没有页面速度优化或额外的Web安全,依靠W3 Total Cache + Cloudflare来实现。加速网站。现在,后台运行速度较慢(CPU消耗更多!),但至少我看不到404/500(到目前为止!)。

我对该组合仍然不满意,因此我肯定会继续调整DreamHost的设置,希望进一步减少RAM消耗并仍然获得足够的性能。就像@dgw所说的,我也使用很多插件-因为我需要它们的功能。并非每个人都通过DreamHost托管WP都有简单的博客需求。网站越复杂,所需的功能就越多……这就是WordPress的优点,您只需要使用真正需要的插件即可,如果对少量需求感到满意,则可以简化核心WP安装。但是,插件在网站上不一定“不好”或那么重;但确实有些人可能会消耗大量RAM ...


3

这只是一个粗略的主意:如果遇到“真正的” 404错误(设置了标头),则可以搜索插件并查找PHP header()函数和404号。这可以将插件的数量从70个减少到一些。然后,您只需要检查那些。

这可以通过诸如Eclipse PDT之类的IDE轻松完成,该IDE提供了对特定PHP函数调用的搜索。

紧接着,但不能保证它能成功运行,是编写一个挂接到标头设置的插件,然后向您提供跟踪哪些代码实际上在设置潜在的404(回溯)。仅当插件使用WordPress API函数时,此方法才有效。无论WP API如何,查找PHP函数的第一种方法都可以使用。


这听起来很有希望。我休假后还有其他需要注意的地方。:)
dgw

我设法在仍不在市区的情况下进行了一些查找,但仅发现我的备份插件似乎要求输出404。Firebug表明它确实是404。有所进展...但是,我现在在触发问题时遇到了麻烦,所以我想休息一下。我讨厌间歇性的错误!
dgw

2

需要更多信息:

1)为什么有那么多插件?

2)您的托管服务提供商正在运行什么操作系统?

3)什么网络服务器?

4)您是否有权访问httpd服务器日志,尤其是错误日志?

5)错误日志在围绕这些问题的时间范围内怎么说?

(现在,说实话,如果我们概括为“运行WordPress的平均J6P可能会有这个确切的问题,我们可以首先指示所说的J6P至少回答上述5个问题...)


我拥有所有这些插件,因为我使用了它们提供的功能。为什么还要 错误日志一点也没说。我在DreamHost上,因此我认为服务器正在使用Apache httpd运行自定义Debian构建。
dgw 2010年

既然您提到了它,我也同样会在我的DH站点上看到那些随机错误。当我尝试在MS安装和运行导入程序中进行网络升级时,尤其会发生这种情况。奇怪。
ZaMoose
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.