我的magento 1.6.1.0站点上遇到了一些问题,看起来像是内存泄漏。服务器完全关闭了几次,因为我在共享服务器上,我的托管公司对我不太满意,并威胁要禁止我的网站进入他们的服务器,因为他们说这对整个服务器构成威胁。
当服务器在服务器日志中关闭时,我们可以先读取:NY-SH-02 suhosin[31654]:警报 - efree() 上的金丝雀不匹配 - 在0x7f7567b90e58检测到堆溢出(攻击者"未设置REMOTE_ADDR",文件"/var/www/sites/mysite.com/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php",第 119 行)大约 78 行,同时显示确切的消息
系统写入间隔 1 次NY-SH-02 suhosin[30574]:警报 - efree() 上的金丝雀不匹配 - 在0x7f7567b90e58检测到堆溢出(攻击者"未设置REMOTE_ADDR",文件"/var/www/sites/mysite.com/lib/Zend/Controller/Response/Abstract.php",第 586 行)
半分钟后,以下消息出现NY-SH-02 suhosin[32532]:警报 - 脚本试图将memory_limit增加到高于允许值的 536870912 字节(攻击者"ip-adress",文件"/var/www/sites/mysite.com/index.php",第 2 行)
这一行看起来像 50 次,但具有不同的 php 文件,但总是说第 2 行
定义为攻击者的最后一个警报行中的 IP 地址有时不同,2 次是谷歌机器人,2 次是不同的 IP。
以前有没有人遇到过这个问题,或者知道我必须从哪里开始寻找,因为这是干草堆里的一根针。
这与其说是内存泄漏,不如说是Magento具有显着的内存要求。我不是安全专家,但我知道suhosin
是一个PHP扩展,旨在加强PHP的安全性。 它似乎在抱怨
-
PHP 的内存限制正在耗尽,它将其解释为攻击。
-
PHP 文件正在使用
ini_set
将内存限制提高到 536870912 字节,确切地说是 512MB。
没有足够的内存分配给每个共享主机实例,以便Magento运行。 如果用户点击具有大量非缓存项的页面,Magento可以暂时使用200 MB,300 MB甚至400 MB的内存。 在结帐期间,Magento故意重建与订单相关的缓存,以确保它获得最新的项目 - 快速修复它以提高内存限制,这可能是正在发生的事情#2
您需要一个宣传Magento支持的主机。