अपाचे सक्षम कार्यकर्ता mpm


10

मैंने ubuntu पर काम करने के लिए FastCGI और PHP5-FPM को कॉन्फ़िगर किया है, जो ठीक काम कर रहा है।

लेकिन मैंने "apache2 कार्यकर्ता mpm" मॉड्यूल स्थापित किया और "prefork mpm" को कॉन्फ़िगर और प्रतिस्थापित करना चाहता था जो कि apache2 में डिफ़ॉल्ट है।

सभी पाया मैं /etc/sysconfig/httpdबस "कार्यकर्ता mpm" सक्षम कर HTTPD=/usr/sbin/httpd.workerदेगा CentOS में था ।

  1. हम Ubuntu में "कार्यकर्ता mpm" को कैसे सक्षम करते हैं?

  2. इसके अलावा जब मैं अपाचे के संकलित मॉड्यूल को "/usr/sbin/apachectl -l"सूचीबद्ध "prefork.c"करता हूं तो यह सूची नहीं होगी जो कि कहा जा रहा है क्योंकि हम इसे डिफ़ॉल्ट रूप से उपयोग कर रहे हैं। लेकिन जब मैं "/usr/sbin/apache2 -V | grep MPM"यह दिखाता है "सर्वर MPM: prefork" क्या कोई इसे समझा सकता है?

$ / usr / sbin / apache2 -V | जीआरपी एमपीएम

Server MPM:     prefork

phpinfo ();

Server API :    FPM/FastCGI

जवाबों:


29

काम करने के कुछ समय बाद मैंने इसे स्वयं किया। आप नीचे दिए गए चरणों को पा सकते हैं।

जांचें कि वर्तमान में कौन सा MPM अपाचे चल रहा है:

apachectl -V | grep -i mpm

Result:
Server MPM:     prefork

उपलब्ध उपलब्ध एमपीएम मॉड्यूल (सुनिश्चित करें कि mpm_worker सूचीबद्ध है)

ls /etc/apache2/mods-available/mpm*

Result:
/etc/apache2/mods-available/mpm_event.conf  /etc/apache2/mods-available/mpm_prefork.conf  /etc/apache2/mods-available/mpm_worker.conf
/etc/apache2/mods-available/mpm_event.load  /etc/apache2/mods-available/mpm_prefork.load  /etc/apache2/mods-available/mpm_worker.load

सूची में सक्षम MPM मॉड्यूल (यदि mpm_worker सक्षम नहीं है तो हमें इसे सक्षम करना चाहिए और mpm_prefork मॉड्यूल को अक्षम करना चाहिए)

ls -l /etc/apache2/mods-enabled/mpm*

Result:
/etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
/etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load

MPM_PREFORK मॉड्यूल अक्षम करें

a2dismod mpm_prefork

MPM_WORKER मॉड्यूल सक्षम करें

a2enmod mpm_worker

यह जाँचने के लिए कि Apache MPM WORKER पर चल रहा है या नहीं

apachectl -V | grep -i mpm

Result:
Server MPM:     worker

यदि आपको ये कमांड निष्पादित करने के बाद यह त्रुटि मिलती है:

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

Libapache2 पैकेज को निकालने का प्रयास करें:

apt-get remove libapache2-mod-php5

2
अनुदेश का पालन किया लेकिन इसे प्राप्त करना: * वेब सर्वर Apache2 को पुनः आरंभ करना [विफल] * Apache2 configtest विफल। कॉन्फ़िगरेशन परीक्षण का आउटपुट था: AH00534: apache2: कॉन्फ़िगरेशन त्रुटि: एक से अधिक MPM लोड। कार्रवाई 'configtest' विफल रही। अपाचे त्रुटि लॉग में अधिक जानकारी हो सकती है।
neobie

एकदम सही :) यह मेरे लिए काम कर रहा है।
चिराग जगानी

यह त्रुटि दे रहा है "अपाचे एक थ्रेडेड MPM चल रहा है, लेकिन आपका PHP मॉड्यूल थ्रेडसेफ़ के लिए संकलित नहीं किया गया है। आपको PHP को फिर से शुरू करने की आवश्यकता है" और libapache2-mod-php5 को हटाने से भी मदद नहीं मिल रही है।
आईबॉर्ग

2

अपाचे एक थ्रेडेड MPM चल रहा है, लेकिन आपका PHP मॉड्यूल थ्रेडसेफ़ होने के लिए संकलित नहीं है। आपको PHP को recompile करने की आवश्यकता है।


0

यदि आपको ये कमांड निष्पादित करने के बाद यह त्रुटि मिलती है:

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

Libapache2 पैकेज को निकालने का प्रयास करें:

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