我试图通过Uniform Server WAMP包(Apache版本2.4.20,PHP版本7.0.8)自己托管一些网页,其中一个是简单的Bootsrap投资组合另一个是使用WooCommerce和其他插件的基于WordPress的在线商店。WordPress Apache VirtualAlloc和VirtualFree失败,PHP内存不足
有时我的WordPress基于网站停止工作,直到我重新启动Apache服务。我觉得充满了这些错误主要Apache日志:
VirtualAlloc() failed: [0x00000008] Not enough storage is available to process this command. VirtualFree() failed: [0x000001e7] Attempt to access invalid address.
而且我店Apache的错误日志充满了这些:
[Tue Aug 23 14:49:59.357235 2016] [:error] [pid 11300:tid 1768] [client 88.119.96.56:52269] PHP Fatal error: Out of memory (allocated 2097152) (tried to allocate 4096 bytes) in D:\Software\UniServerZ\vhosts\***\wp-includes\pomo\mo.php on line 276, referer: http://***/wp-admin/edit.php?post_type=shop_order
线不同至268,270和276,并在mo.php他们期待像这样:
$entry = new Translation_Entry(); // 268
...
$parts = explode(chr(4), $original); // 270
...
$parts = explode(chr(0), $original); // 276
整个源代码可以找到here。
与此同时,我的投资组合页面没有问题。
我增加memory_limit的在php.ini中至2048MB,增加define('WP_MEMORY_LIMIT', '256M');
和define('WP_MAX_MEMORY_LIMIT', '512M');
到的wp-config.php文件,但一周仍至少两次我的网站不能访问和日志充满上述消息。
我的网站不会产生太多的流量,服务器有16GB的RAM和半空的512GB SSD,请帮我理解或找出是什么原因造成的问题,因为当前日志对我来说很少。
更新1
我发现上面所有的VirtualAlloc一个有趣的线和VirtualFree失败:
[Tue Aug 23 21:02:40.298272 2016] [:error] [pid 504:tid 1836] [client 191.96.249.54:36032] script 'D:/Software/UniServerZ/www/xmlrpc.php' not found or unable to stat
貌似我加入了这行黑客行为,禁用xmlprc的受害者。 htaccess文件:
<Files "xmlrpc.php">
Order Allow,Deny
Deny from all
</Files>
希望这有助于。
更新2 - 几天后
看起来问题解决了,不时地我发现客户端通过服务器配置错误否认,但网站不再失败。
更新3 - 几个星期后
的VirtualAlloc()和VirtualFree()失败回来,没有任何可疑的脚本请求,日志只是充满提到的失败,我的店数有一堆提到了的内存错误。是否有可能如何使Apache错误更详细/详细,以找出哪些命令会触发没有足够的存储错误,或试图访问哪个无效地址?
更新4 - 几个月后
经过正规的网站使用的一段时间,然后重新启动Apache的不时错误就停了,我怀疑一些常用的插件已经更新,现在的内存没有按没有泄漏,一切正常,直到下一个错误...
我有这个确切的问题。我能想到的唯一的事情就是Xamppp是32位的,所以无法为生产站点寻址尽可能多的内存。 –