Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 共享Magento开发环境需要多少内存?_Php_Apache_Magento_Memory - Fatal编程技术网

Php 共享Magento开发环境需要多少内存?

Php 共享Magento开发环境需要多少内存?,php,apache,magento,memory,Php,Apache,Magento,Memory,我们使用共享服务器(在机架空间上)进行Magento开发。每个开发人员都有自己的沙箱,但是PHP的内存限制=512M,当我尝试使用Mage::log($someBigArray)]检查一些对象时,我会遇到失败,Apache会记录以下内容: [Mon Jan 23 15:47:35 2012] [error] [client 208.247.73.130] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tri

我们使用共享服务器(在机架空间上)进行Magento开发。每个开发人员都有自己的沙箱,但是PHP的
内存限制=512M
,当我尝试使用
Mage::log($someBigArray)]
检查一些对象时,我会遇到失败,Apache会记录以下内容:

[Mon Jan 23 15:47:35 2012] [error] [client 208.247.73.130] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 228065281 bytes) in /home/msmith/projects/ref/app/Mage.php on line 761, referer: http://ref.msmith.mage.example.com/checkout/cart/
我的老板想增加内存,这样我们就可以做这种记录了。目前我们只有三个开发者,但我们希望能够增加到15个。在php.ini中为
memory\u limit
设置多少内存以支持共享服务器上的那么多开发人员

<> L> >P>尽可能多,虽然15个开发者不是那么多,如果你考虑到你的商店的流量,一旦你推出

  • 世界上所有的内存都无法修复您的
    允许内存大小268435456字节已耗尽的错误。当PHP遇到对象之间的循环递归链接并不断将无限字符串表示形式假脱机到内存中时,就会出现这些错误。Magento有很多这样的循环引用


  • 您还没有使用512MB—请注意错误日志中指示的允许内存大小。除了PHP.ini之外,Magento在几个地方设置了内存限制,至少在我的发行版(Linux上的BitNami映像)中是这样

    在htdocs中,我拥有.htaccess,具有:

    ############################################
    ## adjust memory limit
    
    #    php_value memory_limit 64M
        php_value memory_limit 256M
        php_value max_execution_time 18000
    
    这会影响应用程序的很多方面。代码中还有一些地方

        @set_time_limit(0);
        @ini_set('memory_limit', '256M');
    
    你可以做这些

    如果要转储到日志的大型阵列是Varien_对象,可以尝试如下方式转储:

        Mage::log(
            "My object: " .
            print_r($object->debug(),true),
            null,
            'MyLogfile.log'
        );
    

    调试方法停止无限递归,但这只适用于Varien_对象的子类。幸运的是,Magento中的许多对象都是从Varien_对象派生的。

    那么有什么方法可以安全地将数组的有用部分转储到日志中呢?以
    Mage\u Checkout\u Block\u Cart\u Totals->\u Totals
    为例。@kojiro识别有用的部分,将它们分割成基本类型或简单的一级对象/数组。此外,xDebug在开发过程中是天赐良机,因为它的var_转储在不过度扩展对象方面非常聪明+xdebug为1!!使用像样的IDE(如Netbeans、Eclipse或PhpStorm)更好