Magento 2 İzin Verildi Kodu derlerken bellek bitti hatası


28

Modül eklediğimde hatam var ..

Lütfen Magento compile komutunu tekrar çalıştırın

bu yüzden komutun altında koşuyorum ama aynı zamanda aşağıdaki komutu roottan çalıştırıyorum.

php magento kurulumu: di: derlemek

Compilation was started.
%message% 0/7 [>---------------------------]   0% 1 sec 37.0 MiB%message% 0/7 [>
---------------------------]   0% 1 sec 37.0 MiBProxies code generation... 0/7 [
>---------------------------]   0% 1 sec 37.0 MiB
Proxies code generation... 1/7 [====>-----------------------]  14% 47 secs 43.5
MiB
Repositories code generation... 1/7 [====>-----------------------]  14% 47 secs
43.5 MiB
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate
 24 bytes) in D:\xampp\htdocs\linsenwelt\vendor\zendframework\zend-code\src\Scan
ner\FileScanner.php on line 36

Nasıl düzeltilir ?


Canlı sunucuda aynı hatayı alıyorum
SIBHI S

Yanıtlar:


72

Magento 2 komutunda hafıza limiti için hızlı bir çözüm, komut içinde doğrudan hafıza limiti ekliyor.

Derleme komutu için

php -dmemory_limit=5G bin/magento setup:di:compile

Dağıtım için

php -dmemory_limit=5G bin/magento setup:static-content:deploy

Sorun çözülmezse en fazla 5G'ye kadar değiştirebilirsiniz.


1
sayende, teşekkür ederim çok kez daha zaman kazandırır @rakesh
Nagaraju K

1
Kendine iyi bak, artan hafıza sınırı sadece geçici bir çözüm olabilir.
Macas,

8

Cli'nizin yalnızca 128MB ayrılmış belleği var. Mümkünse, değeri en az 256 MB veya 512 MB'a yükseltin.


Php.ini dosyam için 512 MB boyutunda denedim ama hala işe yaramadı ... nasıl çözülür?
Khushbu Mehta,

Hala alırsanız Allowed memory size of 134217728 bytes, cli için hafıza sınırını arttırmadınız.
Marius

Hangi dosyada hafıza limitini belirledim ??
Khushbu Mehta,

8

bu 'kirli' yolu kullan

php -dmemory_limit=-1 bin/magento setup:di:compile


5

PHP> = 5.3.0 kullanıyorsanız ve Magento 2.1.x ve üstünü kullandıysanız, çalıştırdıktan sonra composer installkök dizininizde ve pub dizininizde iki dosya oluşturulur..user.ini

PHP.ini ayarlarınızı geçersiz kılmak için bu dosyaları düzenleyin, bu durumda memory_limit

; Set PHP memory limit to 768M which already enough for compilation tasks
memory_limit = 768M
max_execution_time = 18000

Apache /pubkullanıyorsanız, engineX (nginx) kullanıyorsanız , yalnızca kök dizin içindeki dosyalara bakmanız gerekir;

Umarım yardımcı olur.


3

PHP'ye ayrılan belleği arttırmanız gerekir. Belleği artırmak için komutu yürütün php --ini. Bulma php.ini yüklü. Gibi olmalı

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,

Geçerli yüklü php.ini (/etc/php5/cli/php.ini) adresine gidin ve memory_limit parametresini bulun. Memory_limit parametresine karşı değeri 256M veya 512M'ye yükseltin.


3

Bu durum hata ayıklamak için zor olabilir çünkü

php -r "echo ini_get('memory_limit').PHP_EOL;"

PHP, yolunuzdaki bellek sınırını gösterir, ki bu iyi olabilir. Ancak magento betiği (bin / magento), başlangıç ​​ekini kullanır

#!/usr/bin/env php

Bu yüzden mutlaka yolunuzdan PHP kullanarak değil! php.iniKullanılan dosyayı izlemenin bir yolu şunun gibi küçük bir betik yazmaktır:

#!/usr/bin/env php
<?php
phpinfo();

onu çağır getinfo(değil getinfo.php!), çalıştırılabilir yap, sonra şöyle çalıştır:

./getinfo  | grep php.ini

Bu size değiştirmeniz gereken ini dosyasını gösterecektir. Bu dosyada, memory_limitdiğer mesajlarda önerildiği şekilde yapılandırma değerini 128M'den daha yüksek bir değerle değiştirin. Ardından dosyayı kaydedin ve çalışmanızı kontrol edin:

./getinfo  | grep memory_limit

2

Benzer bir sorunla karşılaştığımda, php ini dosyasının içindeki hafıza sınırı 2Gb'ye çıkarıldı, phpinfo () dosyası 2Gb'ye ayarlandığını gösterdi. Magento hafıza sınırını manuel olarak bir yerlere ayarlamış gibi görünüyor. Dosya bin / magento içindeki hafıza limitini arttırdım. İlk satırda şunu koydum:

ini_set('memory_limit', '656M');

bu çalışma yaptı.


2

Sorum için çözümüm var. Hafıza tükenmiş hatasında derleme kodu için hafıza limiti eklememiz gerekir.

php -dmemory_limit=4G bin/magento setup:di:compile

Umarım gelecekte birine yardımcı olur.


0

php/bin magento -d memory_limit=5G s:d:c Derleme kodunuzdan sonra aşağıdaki satırı kullanın . Bunun nedeni php için izin verilen hafıza sınırının olmasıdır. Ancak komuttaki hafıza sınırına izin verdikten sonra bu hatayı kaldıracak ve derleme ve diğer komutlarınız hatasız olarak çalışacaktır. Bunu
-d memory_limit=5G , yukarıdaki örnekte gördüğünüz her komutun içine ekleyin . Cevabımı yararlı bulursanız, oy verin.


0

"-D memory_limit = 5G" kullanarak derleme akıllıca bir karar değildir. Geliştiriciden Üretime Mod Değiştirme işlemi sırasında etkilenebilecek geçici bir çözümdür. Bu kez sistem kodu, bu hatayı "-d memory_limit = 5G" mantığı olmadan derler.

Bu hatayı bu aşamada düzeltmek daha iyi bir seçenektir. Bunu düzeltmek için, php.ini dosyasını açın ve memory_limit değerini 1024M artırın ve derleme komutunu çalıştırın php bin / magento setup: di: compile

Şunu kontrol edin: https://getcomposer.org/doc/articles/troublesho.md#memory-limit-errors

Bu sefer işe yaramalı


0

Eğer Cli içinde bu sorunla karşılaşıyorsanız, lütfen bu komutu girin

php -dmemory_limit = 8G bin / magento kurulumu: yükseltme


0

M2 için aşağıdaki komutu ssh ile hafıza limiti ekleyin.

derleme komutu için: php -dmemory_limit=5G bin/magento setup:di:compile konuşlandırma komutu için: php -dmemory_limit=5G bin/magento setup:static-content:deploy

Sorun çözülmediyse 5G değerini artırabilirsiniz.


0

67

Magento 2 komutunda hafıza limiti için hızlı bir çözüm, komut içinde doğrudan hafıza limiti ekliyor.

Derleme komutu için

php -dmemory_limit = 5G bin / magento kurulumu: di: Dağıtım İçin derleme

php -dmemory_limit = 5G bin / magento kurulum: statik içerik: dağıtım Sorun çözülmezse en fazla 5G'ye kadar değiştirebilirsiniz.

bu gerçekten iş :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.