我有一个基于服务器场的VPS apache服务器。
最近,我遇到了内存限制错误,我决定通过在PHP配置的WHM面板中将内存限制更改为256MB来增加内存限制的数量。在我按下"保存"按钮后,我的网站(以及我服务器中的其他wordpress网站)到处都是随机的致命错误和500个内部服务器错误:http://amadeus-trade.ru
我可以登录后台,但是,当我尝试去系统->配置时,我得到了这个错误:
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
请与服务器管理员联系,webmaster@amadeus-trade.ru并告知他们错误发生的时间,以及您可能做的任何可能导致错误的事情。
服务器错误日志中可能提供了有关此错误的更多信息。
此外,在尝试使用ErrorDocument处理请求时,遇到了500内部服务器错误
当我尝试添加产品时,我会收到这个错误:
致命错误:第2423行上/home/amadeus/public_html/app/code/core/Zend/Date.php内存不足(已分配19922944)(试图分配1245184字节)
这个错误总是从一个文件跳到另一个文件,看起来像这样的方案:
致命错误:第xxxx-行/home/amadeus/public_html/xxxx/xxxx/xx/xx.php内存不足(已分配xxxxxxxx)(试图分配xxxxxxx字节)
现在,它是全新安装。到目前为止(直到2012年11月1日),该网站运行良好,没有出现任何问题。
托管公司的团队表示,这是magento中代码的问题,但我肯定问题出在服务器上!我的WHM版本由团队在2012年11月1日更新为v11.30
你能帮我解决这个问题吗?
查看错误消息
Fatal error: Out of memory (allocated 19922944) (tried to allocate 1245184 bytes)
in /home/amadeus/public_html/app/code/core/Zend/Date.php on line 2423
PHP告诉您,它试图分配1245184字节的内存,但这超出了允许的限制。它还告诉您,目前分配了19922944个字节。
1245184字节是1216千字节(KB),即1.1875兆字节(MB)。
19922944字节是19456千字节(KB),大约是19兆字节(MB)。
这意味着两件事中的一件。
PHP认为它只允许分配大约19MB的内存
操作系统PHP在内存不足的上运行
检查运行时php.ini
设置,以确保内存更改被卡住(使用调用phpinfo
函数的单个页面来执行此操作)。此外,请确保它是256M
,而不是256MB
。后者不会被PHP识别,并且会发生"奇怪的事情"(包括超低的内存限制)。
也就是说,我猜是晚些时候。当我的PHP版本超过memory_limit
ini中设置的限制时,我会得到一个稍微不同的错误。
PHP Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 10493952 bytes)
PHP告诉我,它的允许限制已被违反。您的错误
Fatal error: Out of memory
说PHP实际上已经用完了服务器当时可用的所有内存。
除此之外,您的主机的响应显示缺乏Magento特定的知识——任何能够运行系统的主机都可以向您提供我刚才所做的信息。我首先会问他们单个PHP请求的最大内存限制是多少。最后,我会转到一个VPS主机,广告Magento的能力,并有一个良好的声誉。
可能是256M比最初设置的要低吗?听起来你已经知道了,Magento至少需要256mb的ram,建议使用512,当然对于更大的应用程序更需要。
运行phpinfo()
命令,查看memory_limit
属性的设置。如果可以,请使用.htaccess
将限制更改为更合理的级别:
php_value memory_limit 512M
然而,我必须说,您的托管提供商很有可能会反对更改此设置(如果他们不允许您在.htaccess
中更改)。