থ্রেড নিরাপদ পিএইচপি সহ উবুন্টু 14.04 এ ইভেন্ট এমপিএম অ্যাপাচি ২.৪ কীভাবে সক্ষম করবেন?


25

আমি উবুন্টু সার্ভারে আপগ্রেড করেছি 14.04 আশা করে যে ডিফল্ট অ্যাপাচি ইনস্টলেশন নতুন ইভেন্ট এমপিএম ব্যবহার করবে, তবে এর পরিবর্তে আমি পুরানো মেমরি খাওয়ার প্রেফের্কটি পাই।

আমি আর্ক লিনাক্সে সাফল্যের সাথে ইভেন্ট এমপিএম স্থাপন করেছি, তবে আমি উবুন্টুতে এটি করতে ব্যর্থ হয়েছি। আমি পেতে থাকি:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP

php-fpmএটি ব্যবহারের জন্য আমি ইতিমধ্যে ইনস্টল করেছি এবং অ্যাপাচি 2 কনফিগার করেছি, তবে যেহেতু অ্যাপাচি 2-র কনফিগার ফাইলগুলি উবুন্টুতে আলাদা, তাই আমি এটি সঠিক জায়গায় করছি কিনা তা সম্পর্কে আমি নিশ্চিত নই।

কীভাবে পিএইচপি থ্রেডটি নিরাপদ করবেন সে সম্পর্কে কোনও ধারণা যাতে আমি অ্যাপাচি 2 ইভেন্ট-এমপিএম ব্যবহার করতে পারি? (অবশ্যই পিএইচপি পুনরায় সংকলন না করে অবশ্যই)

উত্তর:


39

অক্ষম করতে event MPM, আপনি এটি করতে পারেন sudo a2dismod mpm_eventএবং তার পরে সক্ষম করতে prefork, আপনার করা উচিত sudo a2enmod mpm_prefork

অবশেষে অ্যাপাচি পুনরায় চালু করুন:

sudo service apache2 restart

3
আপনার সেখানে থাকা দরকার ... এখানে নেই ... সেখানে ... উত্তর তালিকার শীর্ষে।
কর্মফল

2
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত! এটি করার পরে sudo service apache2 restart
অ্যাপাচি

4
এটি কীভাবে এমপিএমকে সক্ষম করবে এই প্রশ্নের উত্তর দেয়, যেমন ওপি জিজ্ঞাসা করেছিল? ওপি যা চেয়েছিল তার বিপরীত কীভাবে করবেন তা আপনি ব্যাখ্যা করছেন।
ক্রেগ

2
@ মেহেরবান, ওপি "ইভেন্ট এমপিএম কীভাবে সক্ষম করবেন?" শব্দের জন্য শব্দ জিজ্ঞাসা করেছিলেন, এবং আপনার উত্তর "জাস্ট ইভেন্ট এমপিএম অক্ষম করুন"। এটি কীভাবে গ্রহণযোগ্য উত্তর?
নিকোলাস বুলিয়ানিয়ান

1
@ মেহরবান এটি যে প্রশ্নটি জিজ্ঞাসা করা হয়েছিল তা নয়, সুতরাং গুগল থেকে এখানে আসা সমস্ত ট্র্যাফিককে "এক্স করার সর্বোত্তম উপায়টি এক্সকে করণীয় নয়" বলা হচ্ছে। আমি যদি চকোলেট কুকিজ তৈরি করতে জিজ্ঞাসা করি তবে আমি একটি চকোলেট কুকি রেসিপি আশা করি।
নিকোলাস বাউলিয়ান 11

13

এটি আমার পক্ষে কাজ করেছে।

আপনি এই প্যাকেজটি ইনস্টল করেছেন কিনা তা প্রথমে পরীক্ষা করুন:

dpkg -l | grep libapache2-mod-php5

আপনার যদি এটি থাকে তবে এটি সরিয়ে দিন:

apt-get remove libapache2-mod-php5

এটা সঠিক উত্তর!
ডাঃসভানহায়

6

সমান্তরালে পিএইচপি-র সাথে যোগাযোগের জন্য আপনি অ্যাপাচে একাধিক উপায়ে ইনস্টল করতে পারেন। হতে পারে আপনি (এখনও) পুরানো মোড_এফপি ইনস্টল করেছেন, এছাড়াও অতিরিক্তভাবে ফাস্টসিজি / পিএইচপি-এফএমপিতে।

আপনি দেখতে পাচ্ছেন যে রানার সময় আপনার অ্যাপাচি কোন মডিউলগুলি লোড করেছে

apache2ctl -M

প্রয়োজনে, sudoরুট সুবিধা পেতে ব্যবহার করুন । আপনি যদি php5_module (shared)বর্তমানে আপনার অ্যাপাচি ব্যবহার করছেন এমন মডিউলগুলির মধ্যে দেখতে পান তবে পুরানো মোড_এফপি এখনও ইনস্টলড রয়েছে এবং আপনাকে mpm_workerবা ব্যবহার করতে বাধা দেয় mpm_event


5
সার্ভারটি চালু না হলে মোডগুলি পেতে এটি চালানো যায় না, sudo a2dismodমোডগুলি অক্ষম করা যেতে পারে কিনা তার জন্য দুটি তালিকা টিপুন এবং তারপরে দু'বার চেষ্টা করুন । আপনি যদি php5এটি ডাইবেবল দেখতে পান।
পিফারেল

2

আমার জন্য নিম্নলিখিতটি পুরোপুরি ডেবিয়ান নিয়ে কাজ করুন:

  1. প্রেফার্ক অক্ষম করুন, ইভেন্টটি সক্ষম করুন: a2dismod mpm_prefork && a2enmod mpm_event
  2. Mod-php5 অপসারণ: aptitude remove libapache2-mod-php5
  3. php_আপনার VHost এনক্যাপসুলেটে আপনার প্রতিটি অপশন রয়েছে তা জেনে রাখুন <IfModule mod_php5.c></IfModule>, অন্যথায় অ্যাপাচি পুনরায় আরম্ভ হবে না
  4. করা service apache2 restart

1

আপনার অ্যাপাচি কনফিগারেশন ফাইলের লোড মডিউল বিভাগগুলিতে নিম্নলিখিতটি সন্ধান করুন:

LoadModule mpm_event_module modules/mod_mpm_event.so

এবং এটি নিম্নলিখিত মডিউল দিয়ে প্রতিস্থাপন করুন:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

না, এটা করবেন না! অ্যাপাচি বিল্ড মডিউলার, তাই আপনাকে আপনার কনফিগারেশনে কোনও লোডমডুল-লাইন পরিবর্তন করতে হবে না। শুধু কর a2dismod mpm_prefork && a2enmod mpm_event। তারপরে আপনার অ্যাপাচি পুনরায় চালু করুন, এবং আপনি শেষ করেছেন।
suther

0

পিএইচপি 5 মডিউলটির প্রিফের্ক এমপিএম প্রয়োজন, এবং প্রেফের্ক অক্ষম করতে একজনকে পিএইচপি 5 অক্ষম করতে হবে।

ডিবিয়ান এর অধীনে, আমি মূল হিসাবে নিম্নলিখিতগুলি করেছি:

প্রেফের্ক এমপিএম অক্ষম করুন

a2dismod mpm_prefork

ইভেন্ট এমপিএম, বা আপনার পছন্দসই যাই হোক না কেন এমপিএম সক্ষম করুন। দ্রষ্টব্য, আমি খুঁজে পেয়েছি ইভেন্ট এমপিএম অ্যাপাচি ২.২ বা তার আগে প্রস্তাবিত হয়নি

a2enmod mpm_event

পিএইচপি 5 মডিউল লোড অক্ষম করতে, তবে আনইনস্টলেশন ছাড়াই।

a2dismod php5

ফলাফলের অ্যাপাচি কনফিগারেশনের সামগ্রিক যথার্থতা পরীক্ষা করতে test উপরের @ সালথারের উত্তর অনুসারে ত্রুটিগুলি মোকাবেলা করতে হবে ।

apache2ctl -t

অ্যাপাচি পুনরায় চালু করুন

systemctl restart apache2

যদি পিএইচপি এখনও প্রয়োজন হয় তবে থ্রেডসেফ সংস্করণ ইনস্টল করা উচিত। দেখুন: https://www.digitalocean.com/commune/tutorials/how-to-configure-apache-http-with-mpm-event-and-php-fpm-on-freebsd-12-0

শুভকামনা

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