Huge Multisite 的 Wordpress 管理员

Wordpress Admin of Huge Multisite

提问人:Daniel Willems 提问时间:3/3/2022 更新时间:3/3/2022 访问量:237

问:

我可能有一个罕见的 Wordpress Multisite 用例。我们公司为用户创建 wordpress 网站,当我们构建网站时,我们会将其放在单个 Wordpress 多站点安装中。我们有 Wordpress 管理员用户,他们成为所有站点的管理员。我们现在在一个 Wordpress 实例上拥有多达 3500 多个站点。由于点击 504 页面并超时,我无法再以管理员身份登录。

我尝试增加内存大小和环境中的许多其他更改,但无论我做什么,登录页面都会超时。我禁用了所有插件进行测试,但它仍然超时。我似乎在数据库查询中达到了内存限制。

 PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/wordpress/wp-includes/wp-db.php on line 1972

我创建了一个测试管理员用户,该用户仅连接到单个站点,并且可以正常登录。此外,当未登录时,站点非常快。

我的猜测是,由于此管理员已连接到所有 3500ish 站点,因此在登录时正在对所有表进行查询。或者至少太多了。

我在 PHP 7.4 和 Wordpress 5.2.14 上。

有谁知道是否有办法配置 Wordpress 以更好地将上下文范围缩小到我登录的网站?我有点假设这就是问题所在。或者,也许我需要将 Wordpress 升级到处理此问题的更高版本。或者,也许我不是他们为其构建多站点的用例(所有站点的管理员)。我知道有些网站的安装量是我们的几倍,所以我不关心单次安装的总数。

也许我只是被困住了,如果是这样,我可以想出另一种管理站点的方法,但看到所有这些是有帮助的。

PHP wordpress 管理 多站点

评论

0赞 j08691 3/3/2022
您是否尝试过增加 WP 配置文件中的内存限制?
1赞 Chris Haas 3/3/2022
您可能是多网络的候选者,多网络是一个由多站点组成的网络,并由 WordPress 原生支持。不幸的是,没有很多文档可以做到这一点。否则,您是否有像 Redis 或 Memached 这样基于内存的缓存可用?这可能会减轻一些压力。
0赞 Daniel Willems 3/3/2022
谢谢大家,是的,我在多个地方增加了内存。WP配置文件,php配置,甚至我发现的一个答案都告诉我尝试vhost文件。这些都没有奏效。我想我有一个解决方案,但今天早上进行了测试,如果它有效,我会做出回应。

答:

1赞 Daniel Willems 3/3/2022 #1

2 天后找到解决方案或工作。

如果其他人遇到类似的问题,我会让你知道什么对我有用来解决这个问题。我绝不是 Wordpress 专家,这可能就是我首先遇到这个问题的原因。另外,如果有人有更好的答案或解释方式,请随时纠正我。

澄清一下,我使用的是仅在 Wordpress Multisite 中可用的超级管理员。基本上,他/她可以对整个多站点的插件、主题、用户等进行任何编辑。

当我们创建一个新博客时,我们复制了同一个基本博客。这包含新博客在我们的系统中工作所需的所有页面和设置。这包括将超级管理员设为该新博客的显式管理员。我们不需要这样做。超级管理员可以在新博客上执行所需的所有操作,而无需使他/她成为博客的明确管理员。

一旦我创建了一个新的多站点超级管理员,就没有超时,事实上,登录任何博客的速度都非常快。老实说,100% 老实说,我仍然不确定超时的具体代码,但我假设 Wordpress 会对用户在登录时作为管理员的所有博客进行某种查找。对于超级管理员来说,这就是所有的博客。