我刚刚将一个全新的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有关吗?它能以某种方式在系统中设置吗?
答案 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_limit
或phpinfo()
检查当前的init_get('memory_limit')
时,您可能会发现该值与预期格式不匹配;在这种情况下,PHP默认为2M
(2097152
个字节)