সুরকার আপডেট মেমরি সীমা


96

আমার হোস্টিংয়ে আমার সুরকার আপডেট চালানো দরকার যাতে আমি এসএসএস দিয়ে লগ ইন করে কমান্ডটি চালানোর চেষ্টা করি:

composer update

ভিতরে / www ফোল্ডার যেখানে আমার লারাভেল এবং সুরকার ইনস্টলেশন আছে

তবে আমি ত্রুটি পেয়েছি:

এখানে চিত্র বর্ণনা লিখুন

আমার হোস্টিং সরবরাহকারীর সংস্পর্শে তারা আমাকে কমান্ড চালাতে বলে:

php -d memory_limit=512M composer update

আমি এই কমান্ডটি চালাচ্ছি তবে আমি পেয়েছি: "ফাইলটি খুলতে পারেনি: সুরকার"

কি করো? এখানে সমাধান কী?


4
যেমন @ স্পেন বলেছে, উত্পাদন composer installযথেষ্ট। আপনার ক্ষেত্রে, একটি শেয়ার্ড হোস্টিং ব্যবহার করার সময়, আমি মনে করি আপনি কাজ করবেন না composer update, সুতরাং একমাত্র উপায় হ'ল ডিজিটাল ওশান, লিনোডের মতো ভিপিএস হোস্টিং কেনা।
লুকাস সিলভা

উত্তর:


144

আপনি যখন চালনা করবেন তখন composer updateওএস কনফিগার করা পাথগুলি সন্ধান করবে এবং সেই নামটি দিয়ে একটি এক্সিকিউটেবল ফাইল সনাক্ত করার চেষ্টা করবে।

চলমান অবস্থায় php composer update, composerস্ট্রিংটিকে পিএইচপি-র পরামিতি হিসাবে বিবেচনা করা হয়, যা কোনও পথে অনুসন্ধান করা হয় না। এটি চালানোর জন্য আপনাকে পুরো পথ সরবরাহ করতে হবে।

দৌড়ানো which composerআপনাকে জানায় যে ওএস সুরকারকে নির্বাহযোগ্য কোথায় খুঁজে পায় এবং তারপরে আপনি কেবল পিএইচপি কমান্ডে পুরো পথটি ব্যবহার করেন:

$>which composer
/usr/local/bin/composer

$>php -d memory_limit=512M /usr/local/bin/composer update
...

মনে রাখবেন যে 512MB খুব কম হতে পারে। আমার ধারণাটি হ'ল আপনি তাত্ত্বিকভাবে বিভিন্ন সংস্করণ ব্যবহার করেন এবং নির্ভরযোগ্য সংস্করণগুলির উপর নির্ভর করে এটি আনন্দের সাথে ১ জিবি বা আরও বেশি গ্রহণ করবে, যদি আপনি সিমফোনিকে অনুমতি দেন ~2.3তবে আপনি সুরক্ষার সাথে ব্যবহারের তুলনায় আরও অনেকগুলি সংস্করণ ব্যবহার করেন ~2.7

আরও মনে রাখবেন যে প্রযোজনা মেশিনে সুরকার চালানো সেরা ধারণা নয়। আপনার কাছে গিথুব অ্যাক্সেস থাকতে হবে, সম্ভবত অ্যাক্সেস শংসাপত্র সরবরাহ করতে হবে, ভিসিএস সরঞ্জাম ইনস্টল করা আছে এবং যদি আপডেটের সময় দূরবর্তী হোস্টিং সার্ভারগুলির কোনও অফলাইনে থাকে তবে আপনি সহজেই আপনার সাইটটি ভেঙে ফেলবেন। সমস্ত প্রস্তুতি সম্পন্ন ডিপ্লোমেন্ট সিস্টেমে সুরকার ব্যবহার করা আরও ভাল ধারণা এবং তারপরে সমস্ত ফাইলগুলি প্রোডাকশন সার্ভারে নিয়ে যায়।

হালনাগাদ

এটি এখন ২০২০ সাল, এবং সুরকারের স্মৃতিটি পরিচালনা করার উপায়টি বেশ খানিকটা বদলে গেছে। সর্বাধিক গুরুত্বপূর্ণ বিষয়টি হ'ল সুরকার যদি খুব কম সীমাবদ্ধতার সীমাবদ্ধতার মুখোমুখি হয় তবে এটি নিজেই মেমরির সীমা বাড়িয়ে তুলবে Comp তবে এটি খুব শীঘ্রই খুব কম মেমোরি ইনস্টল থাকা মেশিনগুলিতে মেমরি শেষ হয়ে যাওয়ার সমস্যাটি ততক্ষণে ট্রিগার করে। আপনি পরিবেশককে যেমন পরিবর্তনশীল সেট করে কমপোজারকে কম মেমোরি ব্যবহার করতে পারেন COMPOSER_MEMORY_LIMIT=512M, তবে এটি সমস্যার সৃষ্টি করবে যদি সুরকারকে সঠিকভাবে পরিচালনার জন্য আরও মেমরির প্রয়োজন হয়।

আমার মূল বক্তব্যটি সত্যই রয়েছে: খুব কম মেমরি ইনস্টল হওয়া মেশিনগুলিতে সুরকার চালাবেন না। আপনার সবকিছু আপডেট করতে সক্ষম হওয়ার জন্য আপনার সম্ভাব্য 1.5 গিগাবাইট ফ্রি মেমরির প্রয়োজন।


আমি কেবল wite: php -r "readfile (' getcomposer.org/installer' );" | পিএইচপি এবং তারপরে সবকিছু ঠিকঠাক কাজ করে ... এছাড়াও সাহায্যের জন্য ধন্যবাদ
অ্যান্ড্রু

41
php -d memory_limit=-1 $(which composer) updateসুরকারের পথ নির্দিষ্ট করার প্রয়োজন না থাকার কারণে এটি আরও সুবিধাজনক।
রাকস

4
এটা অসাধারণ. আমি জানতাম না আপনি একক কমান্ডের জন্য স্মৃতিশক্তি বাড়িয়ে তুলতে পারেন। এই ঠিক কি করছে?
plushyObject

উইন্ডোতে কেমন?
রায়

4
@ র্যাকস আরও একটি বিষয়, আপনি যদি এই কমান্ডটি মিংডাব্লুতে উইন্ডোতে চালাচ্ছেন তবে আপনি একটি ত্রুটি পাবেন যে পথটি অনুবাদ করা উচিত তাই এই কমান্ডটি ব্যবহার করুনphp -d memory_limit=-1 $(which composer).phar update
ফাইজান

156

এটি যতটা স্মৃতি চায় তার সাথে ব্যবহার করতে সেট করুন:

COMPOSER_MEMORY_LIMIT=-1 composer update

কীভাবে আমরা বিশ্বব্যাপী এই মান বা কোনও মান সেট করতে পারি? পরিবর্তে সিএলআই এর মাধ্যমে প্রতিবার এটি করার পরিবর্তে?
snh_nl

@snh_nl আপনার পিএইচপি মেমরির সীমা নির্ধারণ করতে হবে। উদাহরণ: অধ্যায়প্রেটি.ব্লগ
হাউ-

4
আপনার / ইত্যাদি / প্রোফাইলে (বা আপনি যে কোনও শেল ব্যবহার করুন) এর সাথে এটি বিশ্বব্যাপী সংজ্ঞায়িত করুন COMPOSER_MEMORY_LIMIT=-1; export COMPOSER_MEMORY_LIMIT। বা এটি শেল ওরফে সংজ্ঞা দিন? alias memcomposer='COMPOSER_MEMORY_LIMIT=-1 composer', তারপরে ব্যবহার memcomposerকরুনcomposer
ডায়মন্ডিয়া

এটি এখনও বলেFatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes) in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52
ওজন কার্ট

15

আমি সুরকারের সাথে সমস্যার মুখোমুখি হচ্ছি কারণ এটি সমস্ত উপলব্ধ স্মৃতি মেটায় এবং এরপরে প্রক্রিয়াটি মারা যায় (বাস্তবে, আউটপুট বার্তাটি "হত্যা")

সুতরাং, আমি সুরকারের মেমরির ব্যবহার সীমিত করার জন্য একটি সমাধান খুঁজছিলাম।

আমি চেষ্টা করেছি (@ স্যভেন উত্তর থেকে)

$ php -d memory_limit=512M /usr/local/bin/composer update

কিন্তু এটি কাজ করে না কারণ

"সুরকার অভ্যন্তরীণভাবে মেমরি_লিমিটকে 1.5G তে বাড়িয়ে দেয়" "

-> সুরকার অফিসিয়াল ওয়েবসাইট থেকে।

তারপরে আমি একটি আদেশ পেয়েছি যা কাজ করে:

$ COMPOSER_MEMORY_LIMIT=512M php composer.phar update

সিদ্ধান্ত, আমার ক্ষেত্রে 512 এমবি যথেষ্ট নয়!

সূত্র: https://www.agileana.com/blog/composer-memory-limit-troubleshૂટ/


4
আমাকে এরকম সুরকার ব্যবহার করতে হয়েছিল: COMPOSER_MEMORY_LIMIT = 1024M সুরকারের জন্য 'মডিউল' প্রয়োজন
জেসনফ্লেহার্টি

4
অনুরূপ, আমি ব্যবহার করেছিCOMPOSER_MEMORY_LIMIT=-1 composer require <package name>
রিয়েলটিবো

13

আমি একত্রিত ছিল COMPOSER_MEMORY_LIMITএবং memory_limitকমান্ড লাইনে:

উইন্ডোজে:

set COMPOSER_MEMORY_LIMIT=99999999999&& php -d memory_limit=-1 composer.phar update

লিনাক্সে:

export COMPOSER_MEMORY_LIMIT=99999999999 && php -d memory_limit=-1 composer.phar update

এটিই ম্যাক ওএস এক্স এল ক্যাপিটেনে আমার জন্য কাজ করেছে।
ymd_

12

আমার জন্য সবচেয়ে ভাল সমাধান

COMPOSER_MEMORY_LIMIT=-1 composer require <package-name>

@ রিয়াল্তেবো দ্বারা উল্লিখিত


8

যদি পর্যাপ্ত মেমরির সুরকার থাকে তবে এটি অভ্যন্তরীণভাবে এটি গ্রহণ করবে এবং কোনও সমস্যা ছাড়াই চলবে। এটি করার জন্য সুরকারকে বিশেষভাবে বলার দরকার নেই।

আপনি কি নিজের অদলবদলের স্মৃতি বাড়িয়ে দেওয়ার চেষ্টা করেছেন, এটি আমার পক্ষে কাজ করেছে worked আমি অদলবদলের স্মৃতি 4096 এমবি (4 জিবি) এ বাড়িয়েছি এবং এখন এটি আমার কাছে দুর্দান্ত দেখাচ্ছে।

sudo freeউপলব্ধ মেমরি এবং অদলবদল মেমরি দেখতে " " প্রথমে ব্যবহার করুন । এবং স্ব্যাপ হিসাবে কনফিগার করুন,

ডেবিয়ানদের জন্য:

sudo fallocate -l 4G /swapfile
sudo dd if=/dev/zero of=/swapfile bs=4096k count=1048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

এটিকে / etc / fstab ফাইলে যুক্ত করার জন্য, /swapfile swap swap defaults 0 0

CentOS এর জন্য:

[root@myserver]:/# cd /var
[root@myserver]:/var# touch swap.img
[root@myserver]:/var# chmod 600 swap.img
[root@myserver]:/var# mkswap /var/swap.img

[root@myserver]:/var# dd if=/dev/zero of=/var/swap.img bs=4096k count=1000
[root@myserver]:/var# mkswap /var/swap.img 
[root@myserver]:/var# swapon /var/swap.img

আপনি আপনার শারীরিক ভলিউমের আকারের উপর নির্ভর করে চানগিন বিএস = 1024 কে বা 2048 কে বা 8096 কে দ্বারা আপনার অদলবদ্বার স্মৃতি বাড়িয়ে তুলতে পারেন। পার্থক্যটি দেখতে 'swapon' এবং swapoff কমান্ড ব্যবহার করুন।

'অদলবদল' পরীক্ষা করুন (good০ টি ভাল করা উচিত)

cat /proc/sys/vm/swappiness

5

আপনি memory_limitআপনার php.ini এ মান পরিবর্তন করতে পারেন

আপনার php.ini ফাইলটিতে সীমা বাড়ানোর চেষ্টা করুন

সীমাহীন জন্য -1 ব্যবহার করুন বা 2G এর মতো একটি সুস্পষ্ট মান নির্ধারণ করুন

memory_limit = -1

দ্রষ্টব্য: সুরকার অভ্যন্তরীণভাবে মেমরি_লিমিটকে 1.5G তে বাড়িয়ে তোলে।

ডকুমেন্টেশন getcomposer.org পড়ুন


3

ম্যাক ওএস হাই সিয়েরায় আমি নীচে দৌড়েছি:

MacBook-Pro:asiu jack$ php --ini

ফিরে এসেছে:

Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File:         /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.4/conf.d/ext- 
opcache.ini,
/usr/local/etc/php/7.4/conf.d/php-memory-limits.ini

উপরের সমস্ত উত্তরগুলি লোড হওয়া কনফিগারেশনটি সেট করে যা আপডেট করে তবে অতিরিক্ত অতিরিক্ত .ini ফাইল পার্স করা লক্ষ্য করুন পৃথক ফাইল হিসাবে পিএইচপি-মেমরি-সীমাবদ্ধতা রয়েছে। আপনাকে এই ফাইলটি মেমোরি সীমাটিও আপডেট করতে হবে। একইভাবে পাঠ্য সম্পাদকটিতে খুলুন এবং 2G এর মতো কোনওরকম পরিবর্তন করুন। মেমরি সীমা ব্যর্থতার আউটপুট আপনাকে জানাতে হবে যে এটির কতটুকু স্মৃতি চালানো দরকার, কেবল এটি সীমার চেয়ে বেশি বা -1 এ সেট করুন।


2

আপনি যখন প্রচুর নির্ভরতা সহ বড় লাইব্রেরি বা লাইব্রেরি আপডেট করছেন তখন এই ত্রুটিটি ঘটতে পারে। সুরকার ক্ষুধার্ত বেশ স্মৃতি হতে পারে।

আপনার সুরকার নিজেই সর্বশেষতম সংস্করণে আপডেট হয়েছেন তা নিশ্চিত হন:

php composer.phar --self-update

আপনি সুরকারের জন্য মেমরি সীমা অস্থায়ীভাবে বাড়িয়ে তুলতে পারেন সুরকার মেমরি সীমা পরিবেশ পরিবর্তনশীল:

COMPOSER_MEMORY_LIMIT=128MB php composer.phar update

মেগাবাইটের জন্য "128 এম" ফর্ম্যাট বা গিগাবাইটের জন্য "2 জি" ব্যবহার করুন। আপনি মেমরির সীমাটিকে সম্পূর্ণ উপেক্ষা করতে "-1" মানটি ব্যবহার করতে পারেন।

আরেকটি উপায় হ'ল পিএইচপি মেমরির সীমা বাড়ানো:

php -d memory_limit=512M composer.phar update ...

2

আমি এটি উইন্ডোজ 10 এ তৈরি করেছি এবং আমার সাথে কাজ করেছি:

php -d memory_limit=-1 C:/ProgramData/ComposerSetup/bin/composer.phar update

আপনি চান xx মান পরিবর্তন করতে পারেন

 memory_limit=XX

1

আপনার আউস সার্ভারটি কত বড়? যদি এটিতে কেবল 1 জিবি র‌্যাম থাকে তবে php.ini এ 2gb এর মেমরি সীমাটি সেট করা কোনও উপকারে আসবে না।

যদি আপনি আরও র‌্যাম উপলভ্য পেতে সার্ভারের দিকটি বাড়াতে / না করতে চান তবে আপনিও সোয়াপ্যাপ সক্ষম করতে পারেন।

এখানে দেখুন অদলবদ সক্ষম করার । এটি 4 জিবি সক্ষম করে, যদিও আমি সাধারণত 1 জিবি নিজেই করি।

উত্স: ল্যারাকাস্ট সাইট থেকে পেয়েছি


0

আমার ক্ষেত্রে উত্তরগুলির কোনওটিই সহায়তা করেনি। অবশেষে দেখা গেল, পিএইচপি (এম $ উইন্ডোজ) এর একটি bit৪ বিট সংস্করণে পরিবর্তন তত্ক্ষণাত্ সমস্যার সমাধান করেছে। আমি কোনও সেটিংস পরিবর্তন করি নি - এটি কাজ করেছে।


0

আমি হোমস্টেডের সাথে লারাভেল 6 চালাচ্ছি এবং এই সমস্যাটির মধ্যেও ছুটে এসেছি। অন্যান্য উত্তরে এখানে যেমন পরামর্শ দেওয়া হয়েছে COMPOSER_MEMORY_LIMIT=-1আপনি একটি একক কমান্ডের উপসর্গ রাখতে পারেন এবং কমান্ডটি সাধারণত চালাতে পারেন। আপনি যদি সর্বদা সীমাহীন মেমরির এই পদক্ষেপগুলি অনুসরণ করতে অনুমতি দিতে আপনার পিএইচপি কনফিগারেশন আপডেট করতে চান।

vagrant up
vagrant ssh
php --version # 7.4
php --ini # Shows path to the php.ini file that's loaded
cd /etc/php/7.4/cli # your PHP version. Each PHP version has a folder
sudo vi php.ini

memory_limit=-1আপনার php.ini ফাইল যোগ করুন। আপনার যদি ভিএম ব্যবহার করতে বা php.ini ফাইলে সম্পাদনা করতে সমস্যা হয় তবে কীভাবে ভিমের সাথে php.ini ফাইল সম্পাদনা করবেন সে সম্পর্কে এই উত্তরটি দেখুন । ফাইলটি এর মতো দেখতে হবে:

; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = -1

মনে রাখবেন যে এটি আপনার মেশিনে অসীম পরিমাণের স্মৃতি ভোগ করতে পারে। প্রযোজনা লওলের পক্ষে সম্ভবত একটি ভাল ধারণা নয়। লারাভেল ভ্যালেটের সাথে এই নিবন্ধটি অনুসরণ করতে হবে এবং মেমরির মানটি এখানে আপডেট করতে হবে:

sudo vi /usr/local/etc/php/7.4/conf.d/php-memory-limits.ini

তারপরে ভ্যালেট দিয়ে সার্ভারটি পুনরায় চালু করুন:

valet restart

এই উত্তরটি ম্যাকের লারাভেল ভ্যালেটের সাথে কনফিগারেশন পরিবর্তনের জন্যও সহায়ক ছিল যাতে পরিবর্তনগুলি কার্যকর হয়।





0

লারাভেলের জন্য

পদক্ষেপ 1. আপনার টার্মিনাল খুলুন

cdআপনার লারাভেল ডিরেক্টরিতে 2. পদক্ষেপ

পদক্ষেপ 3. which composerআপনার লারভেল ডিরেক্টরিতে কমান্ডটি টাইপ করুন এবং সুরকারটি যে ডিরেক্টরিটিতে আছেন সেগুলি নোট করুন।

পদক্ষেপ ৪. কমান্ডটি চালান php -d memory_limit=-1 /opt/cpanel/bin/composer update(কোডটি যদি এটি আপনার পক্ষে কাজ করে তবে আপনি এটি চালাতেও পারেন)

( /opt/cpanel/bin/composerডিরেক্টরি পাথ 3 এ পদক্ষেপে ফিরে এসেছে)

সমস্যা সমাধান


0

উইন্ডোজ 10 (গিট বাশ) এ, আমাকে এটি ব্যবহার করতে হয়েছিল

php -d memory_limit=-1 C:\\composer\\composer.phar install

-1

আমার ক্ষেত্রে এটির এই মেমরির সীমা বৃদ্ধির পাশাপাশি উচ্চতর অনুমতি প্রয়োজন।

sudo COMPOSER_MEMORY_LIMIT=2G php /opt/bitnami/php/bin/composer.phar update

সুরকারকে দিয়ে চালানো sudoভাল ধারণা নয়, কারণ এটি আপনার অনুমতিগুলি মিশিয়ে দেবে। দেখে মনে হচ্ছে আপনি composer updateকোনও সার্ভারে চলেছেন - এটিও খারাপ অভ্যাস, কারণ এটি গণনা করা নির্ভরতা সংস্করণ নিয়ন্ত্রণের অধীনে রাখা আরও আলাদা করে তুলবে
নিকো হাজে

@ নিকোহেসের সাথে সম্মত হন, এটি ব্যবহার করে আপনার এত যত্নশীল হওয়া দরকার! ধন্যবাদ
নাসের নিকজাদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.