WordPress 2MB内存限制来自哪儿

时间:2017-11-19 09:11:46

标签: php wordpress memory virtualhost

我刚刚将一个全新的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有关吗?它能以某种方式在系统中设置吗?

2 个答案:

答案 0 :(得分:1)

有同样的问题。不知道是什么原因造成的。使用@ini_set('memory_limit', '512M');缓解了这种情况 在wp-config.php

某些插件(或主题文件)正在某处更改memory_limit。

答案 1 :(得分:1)

您的memory_limit在执行时可能是无效值,例如256MB(对资源限制的PHP描述要求256M https://www.php.net/manual/en/ini.core.php#ini.memory-limit

使用PHP memory_limitphpinfo()检查当前的init_get('memory_limit')时,您可能会发现该值与预期格式不匹配;在这种情况下,PHP默认为2M2097152个字节)