it-swarm.cn

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

我运行一个包含大约70个活动插件的WordPress站点。

每隔一段时间,我会在/wp-admin/页面上出现随机错误页面(“未找到”,但我没有检查标题以查看它是否为404)。

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

鉴于 我安装的插件列表 ,是否有人知道任何可能导致此问题的问题或其中的问题?

编辑:

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

8
dgw

我整天都遇到了问题似乎是404错误。

无论如何,我刚刚与dreamhost技术支持人员聊天,他告诉我,我与他们的用户帐户正在达到进程内存资源限制(所有进程),这就是导致奇怪的,看似与htaccess相关的问题。我从一个根本不应该被调用的htaccess文件中得到间歇性的404错误!这是鬼屋与鬼屋服务器。

显然,dreamhost使用的杀死机器人的进程将在中间杀死一个Web进程,然后由于某种原因,(现在的僵尸)Apache实际上试图完成它的工作(尽力彻底退出无用的结束到子请求是我最好的猜测)。它会在主http日志中抛出500错误,但在这样做之后,它实际上会触发重写条件和应该永远不会被触发的规则(使用上面的标准文件-f和目录-d htaccess文件) - 它不会写一个新的日志条目!然后,一个新的(不可见的人)请求会触发htaccess文件最后一行的索引文件

注意dreamhost基本帐户中的资源限制!如果你超越他们的极限,并且你已经拥有了mod_rewrite线,你会看到只适合万圣节之夜的奇怪事物 - 看不见的男人,闹鬼的404s!亡灵进程!僵尸阿帕奇! htaccess自己动起来!哎呀!

希望这可以帮助你避免几个小时的痛苦。

6
sophistry

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

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

4
Asbjørn Ulsberg

我只能谈谈自己的经历,到目前为止,我还没有找到一个“确定”的规则来一次性修复 all 问题。

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

同样,许多限制MySQL查询数量以提高性能的插件将占用RAM。因此,找到一个权衡,你仍然可以保持你的网站回复良​​好的性能,同时避免消耗宝贵的RAM是一项艰巨的任务!

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

另外,感谢 这篇文章 ,我发现FastCGI比'普通'CGI使用更多RAM。由于PHP 5.3更擅长管理RAM(更积极的垃圾收集,更少的内存泄漏),我实验性地切换到PHP 5.3 CGI(不是FastCGI) )没有Page Speed Optimization或Extra Web Security,依靠W3 Total Cache + Cloudflare来加速网站。现在后台更慢(更多的CPU消耗!)但至少我没有看到404/500(到目前为止!)。

我仍然对这个组合感到不满,所以我肯定会继续调整DreamHost的设置,希望能够进一步减少RAM consuption并保持足够的性能。就像@dgw说的那样,我也使用了很多插件 - 因为我需要他们的功能。并非所有使用DreamHost托管WP的人都有简单的博客需求;网站越复杂,它需要的功能越多......这就是WordPress的优点,你只需要使用你真正需要的插件,并保持核心WP安装简单如果你是满足于少数需求。但是,插件不一定是“坏”或网站上的那么重;但有些人可能会消耗大量的内存......

3
Gwyneth Llewelyn

这只是一个粗略的想法:如果你得到一个“真正的”404错误(设置了标题),那么你可以搜索你的插件并查找 PHP header()函数 和404号。这可以将插件的数量从70减少到只有一些。那你只需要检查那些。

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

接下来,但不能保证它成功运行,是编写一个插入标题设置的插件,然后跟踪哪些代码实际上设置了潜在的404(回溯)。这仅在插件使用WordPress API函数时才有效。无论PHP AP​​I如何,查找WP函数的第一种方法都能正常工作。

3
hakre

需要更多信息:

1)为什么这么多的插件?

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

3)什么是网络服务器?

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

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

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

2
ZaMoose