Val*_*das 8 php apache wordpress
我试图使用Uniform Server WAMP软件包(Apache版本2.4.20,PHP版本7.0.8)自己托管一些网页,其中一个是简单的Bootsrap产品组合,另一个是使用WooCommerce和其他插件的基于WordPress的在线商店.
在我重新启动Apache服务之前,基于WordPress的站点会不时停止工作.我发现主要的Apache日志填充了这些错误:
VirtualAlloc()失败:[0x00000008]没有足够的存储空间可用于处理此命令.VirtualFree()失败:[0x000001e7]尝试访问无效地址.
我的商店Apache错误日志充满了这些:
[Tue Aug 23 14:49:59.357235 2016] [:error] [pid 11300:tid 1768] [client 88.119.96.56:52269] PHP致命错误:D内存(分配2097152)(试图分配4096字节) :\ Software\UniServerZ\vhosts\***\wp-includes\pomo\mo.php,第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
Run Code Online (Sandbox Code Playgroud)
整个源代码可以在这里找到.
与此同时,我的投资组合页面没有问题.
我增加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]脚本'D:/Software/UniServerZ/www/xmlrpc.php'找不到或无法找到统计
看起来我是黑客攻击的受害者,通过将这些行添加到.htaccess文件来禁用xmlprc:
<Files "xmlrpc.php">
Order Allow,Deny
Deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
更新2 - 几天后
看起来问题已经解决,我不时发现服务器配置错误导致客户端被拒绝,但网站不再失败.
更新3 - 几周后
VirtualAlloc()和VirtualFree()失败了,没有任何可疑的脚本请求,日志只是提到了失败,我的商店日志有一堆提到的内存不足错误.是否有可能使Apache错误更详细/详细,以确定哪个命令触发了足够的存储错误,或者尝试访问了哪些无效地址?
更新4 - 几个月后
经过一段时间的常规网站使用并不时重新启动Apache,错误就停止了,我怀疑一些使用过的插件已经更新,现在内存没有泄漏,一切正常,直到下一个错误...
不确定这是否有帮助,因为 WordPress 不使用 PHP 本机会话,但某些插件正在使用。
我的情况:Windows 操作系统,PHP 7.0.6 - 7.0.11
VirtuaAlloc 由于 php 会话使用而失败。
http://php.net/manual/en/features.sessions.php
我已经用我自己的函数删除/替换了所有 php session_ 函数。
如何重现:session_start(); 解析一些巨大的 xml(150MB 或更多)文件 确实在 Apache 服务器上同时运行多次相同的脚本。
| 归档时间: |
|
| 查看次数: |
5291 次 |
| 最近记录: |