Magento 2 Diizinkan Memori kehabisan kesalahan saat menyusun kode


28

Saya memiliki kesalahan ketika saya menambahkan modul ..

Silakan jalankan kembali perintah kompilasi Magento

jadi saya menjalankan perintah di bawah ini tetapi juga menampilkan kesalahan di bawah ini ketika menjalankan perintah dari root,

setup php magento: di: compile

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

Bagaimana cara memperbaiki ?


Saya mendapatkan kesalahan yang sama di server langsung
SIBHI S

Jawaban:


72

Solusi cepat untuk batas memori dalam perintah Magento 2 secara langsung menambahkan batas memori di dalam perintah.

Untuk perintah Kompilasi,

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

Untuk Penempatan

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

Anda dapat mengubah sesuai 5G ke maksimal jika masalah tidak menyelesaikan.


1
terima kasih @rakesh menghemat waktu saya, terima kasih banyak sekali lagi
Nagaraju K

1
Hati-hati, meningkatkan batas memori hanya bisa menjadi solusi sementara.
Macas

8

Sepertinya klien Anda hanya memiliki 128 MB memori yang dialokasikan. Tingkatkan nilainya menjadi setidaknya 256MB atau 512MB jika Anda bisa.


Saya mencoba ukuran 512mb untuk file php.ini saya tetapi masih tidak berfungsi ... bagaimana menyelesaikannya?
Khushbu Mehta

Jika Anda masih mendapatkan Allowed memory size of 134217728 bytesmaka Anda tidak menambah batas memori untuk cli.
Marius

Di file mana saya menetapkan batas memori ??
Khushbu Mehta

8

gunakan cara 'kotor' ini

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


5

Jika Anda menggunakan PHP> = 5.3.0 dan Anda menggunakan Magento 2.1.x dan di atasnya, maka setelah Anda jalankan composer install, dua file akan dibuat di direktori root Anda dan direktori pub Anda dinamai.user.ini

Edit file-file itu untuk mengganti pengaturan PHP.ini Anda, dalam hal ini adalah memory_limit

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

Jika Anda menggunakan Apache, Anda harus merawat file di dalam direktori root saja, bukan yang /pubsatu dan sebaliknya jika Anda menggunakan engineX (nginx)

Semoga ini bisa membantu.


3

Anda perlu menambah memori yang dialokasikan ke php. Untuk menambah memori, jalankan perintah php --ini. Findout memuat php.ini. Itu harus seperti

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,

Buka php.ini yang dimuat saat ini (/etc/php5/cli/php.ini) dan temukan parameter memory_limit. Tingkatkan nilai terhadap parameter memory_limit menjadi 256M atau 512M.


3

Situasi ini bisa sulit untuk di-debug karena jika Anda mau

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

ini menunjukkan batas memori untuk PHP di jalur Anda, yang mungkin baik-baik saja. Tetapi skrip magento (bin / magento) menggunakan pembukaan

#!/usr/bin/env php

jadi belum tentu menggunakan PHP dari jalur Anda! Salah satu cara untuk melacak php.inifile yang sedang digunakan adalah dengan menulis skrip kecil seperti ini:

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

sebut saja getinfo(bukan getinfo.php!), buat itu bisa dieksekusi, lalu jalankan seperti ini:

./getinfo  | grep php.ini

Ini akan menunjukkan kepada Anda file ini yang perlu Anda ubah. Dalam file itu, ubah nilai konfigurasi memory_limitseperti yang disarankan dalam posting lain, ke nilai yang lebih tinggi dari 128 juta. Kemudian simpan file dan periksa pekerjaan Anda:

./getinfo  | grep memory_limit

2

Saya mengalami masalah yang sama, batas memori ditingkatkan menjadi 2Gb di dalam file php ini, file phpinfo () menunjukkan itu diatur ke 2Gb. Tampaknya Magento menetapkan batas memori secara manual di suatu tempat. Saya meningkatkan batas memori di dalam file bin / magento. Di baris pertama saya letakkan ini:

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

yang membuatnya bekerja.


2

Saya punya solusi untuk pertanyaan saya. Untuk kesalahan kehabisan memori, kita harus menambahkan batas memori untuk kode kompilasi.

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

Semoga itu akan membantu seseorang di masa depan.


0

Pengguna baris berikut setelahnya php/bin magento -d memory_limit=5G s:d:c untuk kode kompilasi Anda. Ini karena batas memori yang diizinkan untuk php. Tetapi setelah mengizinkan batas memori dalam perintah ini akan menghapus kesalahan dan kompilasi Anda dan perintah lainnya akan berjalan tanpa kesalahan. Tambahkan saja ini
-d memory_limit=5G di setiap perintah seperti yang Anda lihat pada contoh di atas. Suara positif jika Anda menemukan jawaban saya berguna.


0

Kompilasi menggunakan "-d memory_limit = 5G" bukanlah keputusan yang bijak. Ini adalah solusi sementara yang mungkin terpengaruh selama proses Mode Switching yaitu dari Pengembang ke Produksi. Kali ini sistem mengkompilasi kode tanpa logika ini "-d memory_limit = 5G" yang melempar kesalahan.

Ini adalah opsi yang lebih baik untuk memperbaiki kesalahan ini pada tahap ini. Untuk memperbaikinya, buka php.ini dan tambah memory_limit sebesar 1024M dan jalankan perintah kompilasi setup php bin / magento: di: compile

Periksa ini: https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors

Kali ini seharusnya bekerja


0

Jika Anda Menghadapi Masalah Ini di Cli, mohon gunakan Perintah Ini

php -dmemory_limit = Pengaturan 8G / magento: peningkatan


0

untuk M2 tambahkan batas memori melalui ssh dengan perintah di bawah ini.

untuk perintah kompilasi: php -dmemory_limit=5G bin/magento setup:di:compile untuk perintah penyebaran: php -dmemory_limit=5G bin/magento setup:static-content:deploy

Anda dapat meningkatkan nilai 5G jika masalah tidak terpecahkan.


0

67

Solusi cepat untuk batas memori dalam perintah Magento 2 secara langsung menambahkan batas memori di dalam perintah.

Untuk perintah Kompilasi,

php -dmemory_limit = 5G pengaturan bin / magento: di: compile For Deployment

php -dmemory_limit = 5G pengaturan bin / magento: static-content: deploy Anda dapat mengubah sesuai 5G menjadi maksimal jika masalah tidak terselesaikan.

ini benar-benar bekerja :)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.