WordPress 2MB 内存限制无处不在
Posted
技术标签:
【中文标题】WordPress 2MB 内存限制无处不在【英文标题】:WordPress 2MB memory limit coming from nowhere 【发布时间】:2018-05-02 16:24:45 【问题描述】:我刚刚将一个全新的 WordPress 下载到了一个 WP 和 MediaWiki 已经顺利运行的虚拟服务器上。 php.ini 中的 memory_limit 设置为 256MB。但出于某种原因,WP 认为它仅限于 2MB,请参阅下面的 Apache 日志条目。
[Sun Nov 19 08:50:21.692866 2017] [:error] [pid 74814] [client 109.81.213.117:59968]
PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate
131072 bytes) in /var/www/foo.bar/subdomain/wp-includes/capabilities.php on line 452
当我从我的新 WP 的 index.php 文件中打印 phpinfo() 时,它显示了 256MB 的限制,因此这个子域或目录没有第二个秘密 php.ini 配置。
我还尝试在 .htaccess 或 php 文件中找到内存限制的恶作剧设置,但无济于事。 (grep -r "memory_limit" .
)
这个 2MB 的限制可能来自哪里?
更新
我将ini_get('memory_limit'); exit;
放在 wp-settings.php 的中间,其中包含其他文件。有时它会按预期写入256MB
,有时它会在/var/www/iurium.cz/daily/wp-includes/wp-db.php
中死去,错误为2MB。这种行为非常随机。
如果不是 htaccess、php.ini 或 ini_set,还有什么会影响内存限制?它与PHP有关系吗?可以在系统中设置吗?
【问题讨论】:
在第 452 行之前执行 phpinfo()(如果经常发生这种情况)以及 ini_get()。此外,如果您更新了 ini 文件并使用 php-fpm 或类似的东西,处理该请求的进程可能没有重新读取 ini 文件(pid
编号应该与您的 phpinfo() 相同-称呼)。还要记住,phpinfo 显示两个值,一个是全局的,一个是本地的。
.htaccess 文件还是 wp-config.php?
你有想过这个吗?
@ClaytonLeis 没有解决方案,我们划掉了项目...
【参考方案1】:
确保您的 memory_limit
值为 256M
(而不是 256MB
)。
资源限制的PHP描述调用256M
https://www.php.net/manual/en/ini.core.php#ini.memory-limit
您可以使用phpinfo()
或ini_get('memory_limit')
来检查该值。
如果memory_limit
与预期格式不匹配,PHP 将默认为2M
(2097152
字节)
【讨论】:
我喜欢你的建议,不幸的是我无法验证它,因为项目被划伤了。还是谢谢! 我遇到了同样的问题... 128MB 而不是 128M【参考方案2】:遇到同样的问题。不知道是什么原因造成的。通过使用@ini_set('memory_limit', '512M');
来缓解它
在 wp-config.php 中
某些插件(或主题文件)正在某处更改 memory_limit。
【讨论】:
以上是关于WordPress 2MB 内存限制无处不在的主要内容,如果未能解决你的问题,请参考以下文章
PHP WordPress:增加wp-config.php中的服务器内存限制
CentOS 5.x和CentOS 6.x限制单个用户线程数上限的不同行为
Firebase 的 Cloud Functions 因超出内存限制而被终止