Magento 2 संकलित मेमोरी जब कोड संकलित त्रुटि समाप्त हो गई


28

मॉड्यूल जोड़ने पर मुझे त्रुटि हुई है ..

कृपया Magento संकलन कमांड को फिर से चलाएँ

इसलिए मैं नीचे कमांड चलाता हूं, लेकिन यह भी प्रदर्शित करता है कि नीचे रूट से कमांड चलाते समय,

php magento सेटअप: di: संकलन

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

कैसे ठीक करना है ?


मुझे लाइव सर्वर में समान त्रुटि मिल रही है
SIBHI S

जवाबों:


72

Magento 2 कमांड में मेमोरी सीमा के लिए एक त्वरित समाधान सीधे कमांड के अंदर मेमोरी सीमा को जोड़ रहा है।

संकलन आदेश के लिए,

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

तैनाती के लिए

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

यदि समस्या हल नहीं हुई तो आप अधिकतम 5 जी के अनुसार बदल सकते हैं।


1
धन्यवाद @ उत्कर्ष यह मेरा समय बचाता है एक बार फिर आपका बहुत-बहुत धन्यवाद
नागराजू के

1
ध्यान रखें, स्मृति सीमा बढ़ाना केवल एक अस्थायी समाधान हो सकता है।
मैकस

8

ऐसा लगता है कि आपकी cli में केवल 128MB मेमोरी आवंटित है। यदि आप कर सकते हैं तो मान को कम से कम 256MB या 512MB तक बढ़ाएँ।


मैंने अपनी php.ini फ़ाइल के लिए 512mb आकार की कोशिश की, लेकिन फिर भी काम नहीं किया ... कैसे हल करें?
खुशबू मेहता

यदि आप अभी भी मिलते हैं Allowed memory size of 134217728 bytesतो आपने cli के लिए मेमोरी लिमिट नहीं बढ़ाई है।
मेरियस

किस फाइल में मैंने मेमोरी लिमिट सेट की है ??
खुशबू मेहता

8

इस 'गंदे' तरीके का उपयोग करें

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


5

यदि आप PHP> = 5.3.0 का उपयोग कर रहे हैं और आपने Magento 2.1.x और इसके बाद के संस्करण का उपयोग किया है, तो आपके चलाने के बाद composer install, आपकी रूट निर्देशिका में दो फाइलें बनाई जाएंगी और आपके पब निर्देशिका का नाम.user.ini

अपनी PHP.ini सेटिंग्स को ओवरराइड करने के लिए उन फ़ाइलों को संपादित करें, इस मामले में है memory_limit

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

यदि आप अपाचे का उपयोग कर रहे हैं, तो आपको केवल रूट डायरेक्टरी के अंदर फाइलों की देखभाल करने की आवश्यकता होगी, न कि /pubएक और इसके विपरीत यदि आप इंजनएक्स (नगनेक्स) का उपयोग कर रहे हैं

आशा करता हूँ की ये काम करेगा।


3

आपको php को आवंटित मेमोरी बढ़ाने की आवश्यकता है। मेमोरी बढ़ाने के लिए, कमांड निष्पादित करें php --ini। Findout भरी हुई php.ini यह जैसा होना चाहिए

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,

वर्तमान लोड किए गए php.ini (/etc/php5/cli/php.ini) पर जाएं और मैमोरी_लिमिटेड पैरामीटर खोजें। Memory_limit पैरामीटर के विरुद्ध मान बढ़ाकर 256M या 512M करें।


3

इस स्थिति को डिबग करने के लिए मुश्किल हो सकता है जब से आप बस

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

यह आपके पथ में PHP के लिए स्मृति सीमा दिखाता है, जो ठीक हो सकता है। लेकिन Magento स्क्रिप्ट (बिन / Magento) प्रस्तावना का उपयोग करता है

#!/usr/bin/env php

इसलिए यह जरूरी नहीं है कि आपके रास्ते से PHP का उपयोग हो! जिस php.iniफ़ाइल का उपयोग किया जा रहा है उसे ट्रैक करने का एक तरीका इस तरह से एक छोटी स्क्रिप्ट लिखना है:

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

इसे कॉल करें getinfo(नहीं getinfo.php!), इसे निष्पादन योग्य बनाएं, फिर इसे इस तरह से चलाएं:

./getinfo  | grep php.ini

यह आपको ini फ़ाइल दिखाएगा जिसे आपको बदलने की आवश्यकता है। उस फ़ाइल में, memory_limitअन्य पोस्ट में सुझाए गए कॉन्फ़िगरेशन मान को बदलकर 128M से अधिक मान पर ले जाएं। फिर फ़ाइल को सहेजें और अपना काम देखें:

./getinfo  | grep memory_limit

2

मैं इसी तरह की समस्या में चलता हूं, मेमोरी लिमिट को php ini फाइल के अंदर 2Gb तक बढ़ा दिया गया था, phpinfo () फाइल ने दिखाया कि इसे 2Gb पर सेट किया गया था। ऐसा लगता है कि मैगनेटो ने मैमोरी की सीमा को मैन्युअल रूप से कहीं सेट किया है। मैंने फ़ाइल बिन / मैगनेटो के अंदर मेमोरी की सीमा बढ़ा दी। पहली पंक्ति में मैंने इसे रखा:

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

जिससे यह काम कर गया।


2

मुझे अपने प्रश्न का हल मिल गया है। मेमोरी समाप्त होने की त्रुटि के लिए, हमें संकलन कोड के लिए मेमोरी सीमा को जोड़ना होगा।

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

आशा है कि यह भविष्य में किसी की मदद करेगा।


0

php/bin magento -d memory_limit=5G s:d:c अपने संकलन कोड के लिए निम्नलिखित पंक्ति को यूजर करें । यह php के लिए अनुमत मेमोरी लिमिट के कारण है। लेकिन कमांड में मेमोरी सीमा की अनुमति देने के बाद यह त्रुटि को दूर कर देगा और आपका संकलन और अन्य कमांड बिना किसी त्रुटि के चलेंगे।
-d memory_limit=5G जैसा कि आपने ऊपर के उदाहरण में देखा है, बस हर कमांड में इसे जोड़ें । यदि आपको मेरा उत्तर उपयोगी लगा हो तो अपवोट करें।


0

"-D memory_limit = 5G" का उपयोग करते हुए संकलन एक बुद्धिमान निर्णय नहीं है। यह एक अस्थायी समाधान है जो मोड स्विचिंग अर्थात डेवलपर से उत्पादन तक की प्रक्रिया के दौरान प्रभावित हो सकता है। इस बार सिस्टम इस तर्क के बिना कोड को संकलित करता है "-d memory_limit = 5G" जो त्रुटि फेंकता है।

इस स्तर पर इस त्रुटि को ठीक करने के लिए यह एक बेहतर विकल्प है। इसे ठीक करने के लिए, php.ini को खोलें और 1024M तक मेमोरी_लिमिट बढ़ाएं और कंपाइल कमांड php bin / magento सेटअप को निष्पादित करें: di: compile

इसे देखें: https://getcomposer.org/doc/articles/troublesourcing.md#memory-limit-phors

इस समय यह काम करना चाहिए


0

यदि आप Cli में इस समस्या का सामना कर रहे हैं तो कृपया इस कमांड को ट्रे करें

php -dmemory_limit = 8G bin / magento सेटअप: अपग्रेड


0

M2 के लिए नीचे कमांड के साथ ssh के माध्यम से मेमोरी लिमिट जोड़ें।

संकलित कमांड के लिए: php -dmemory_limit=5G bin/magento setup:di:compile तैनात कमांड के लिए: php -dmemory_limit=5G bin/magento setup:static-content:deploy

यदि समस्या हल नहीं हुई तो आप मान 5G बढ़ा सकते हैं।


0

67

Magento 2 कमांड में मेमोरी सीमा के लिए एक त्वरित समाधान सीधे कमांड के अंदर मेमोरी सीमा को जोड़ रहा है।

संकलन आदेश के लिए,

php -dmemory_limit = 5G bin / magento सेटअप: di: परिनियोजन के लिए संकलित करें

php -dmemory_limit = 5G bin / magento सेटअप: स्थैतिक-सामग्री: परिनियोजित करें यदि आप समस्या हल नहीं करते हैं तो आप अधिकतम 5G के अनुसार बदल सकते हैं।

वास्तव में काम :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.