【问题标题】:Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in Magento customer Create致命错误:Magento 客户创建中允许的内存大小为 268435456 字节已用尽(尝试分配 20480 字节)
【发布时间】:2021-08-13 15:32:41
【问题描述】:

我在磁电机 2 中创建客户时遇到了这个问题。

致命错误:第 47 行 /vendor/magento/framework/Model/ResourceModel/Db/VersionControl/Snapshot.php 中允许的内存大小为 268435456 字节已用尽(尝试分配 20480 字节)

由于这个原因,我将内存限制增加到了 8 GB。但问题仍然存在。

/**
 * Register snapshot of entity data, for tracking changes
 *
 * @param \Magento\Framework\DataObject $entity
 * @return void
 * @SuppressWarnings(PHPMD.UnusedLocalVariable)
 */
public function registerSnapshot(\Magento\Framework\DataObject $entity)
{
    $metaData = $this->metadata->getFields($entity);
    $filteredData = array_intersect_key($entity->getData(), $metaData);
    $data = array_merge($metaData, $filteredData);
    $this->snapshotData[get_class($entity)][$entity->getId()] = $data;
}

此行中提出的问题 $data = array_merge($metaData, $filteredData);

vendor/magento/framework/Model/ResourceModel/Db/VersionControl/Snapshot.php

如何解决这个问题

【问题讨论】:

    标签: php magento fatal-error


    【解决方案1】:

    试试这个 允许的内存大小为 792723456 字节已用尽(尝试分配 184320 字节) https://magento.stackexchange.com/a/209993/49715

    【讨论】:

      【解决方案2】:

      @Kashif 的回答对我帮助很大。

      但是没有一个选项对我不起作用。

      问题解决了。

      我的服务器是 nginx。它在 /etc/nginx/magento.conf 中定义了内存限制

      打开文件并搜索

      fastcgi_param  PHP_VALUE "memory_limit=
      

      在下面的块内

      location ~ (index|get|static|report|404|503|info|cleanopcache)\.php$ {
      
      }
      

      找到该行后,内存限制必须设置为6144M

      fastcgi_param PHP_VALUE "memory_limit=6144M \n max_execution_time=600";

      之后,它就可以正常工作了。

      您可以通过调试日志找到 Magento 项目中设置的内存限制。

      使用 ini_get('memory_limit'); 制作日志

      希望对大家有所帮助。

      【讨论】:

        【解决方案3】:
        php bin/magento setup:upgrade
        php bin/magento setup:static-content:deploy
        php bin/magento setup:di:compile
        php bin/magento cache:flush
        php bin/magento cache:clean
        
        //To run command forcefully
        php -f bin/magento
        
        //To run command with memory limit 4G
        php -d memory_limit=4G bin/magento
        
        //To run command with max memory limit
        php -d memory_limit=-1 bin/magento
        
        ini_set('memory_limit',256);
        

        ini_set('memory_limit','-1');
        

        点击此处的完整链接 https://magento.stackexchange.com/questions/209976/magento-2-2-2-allowed-memory-size-of-792723456-bytes-exhausted-tried-to-alloc/209993#209993

        【讨论】:

          猜你喜欢
          • 2020-09-06
          • 2020-04-10
          • 2014-03-07
          • 2014-02-07
          • 2014-09-27
          • 2020-07-13
          • 2019-06-30
          • 1970-01-01
          相关资源
          最近更新 更多