सवाल अगर मैं prefork या कार्यकर्ता के रूप में apache चल रहा है तो मैं कैसे बता सकता हूं?


अगर मैं prefork या कार्यकर्ता के रूप में apache चल रहा है (या चलाने के लिए कॉन्फ़िगर किया गया है) मैं कैसे बता सकता हूं?


39
2017-11-24 23:47


मूल


या अधिक तकनीकी रूप से 'चलाने के लिए संकलित'


जवाब:


एमपीएम संकलन समय पर कॉन्फ़िगर किया गया है। इसके बाद इसे समझने का एक तरीका मॉड्यूल में संकलित सूची है। उस सूची में चुने गए एमपीएम शामिल होंगे। सूची -एल ध्वज के साथ अपाचे बाइनरी चलाने के लिए पूरा किया जा सकता है।

andreas@halleck:~$ apache2 -l
Compiled in modules:
 core.c
 mod_log_config.c
 mod_logio.c
 worker.c
 http_core.c
 mod_so.c
andreas@halleck:~$ 

यहां हम मॉड्यूल वर्कर्स.c पाते हैं, इसलिए मैं कार्यकर्ता एमपीएम चला रहा हूं।


35
2017-11-24 23:56



यह जवाब गलत है। मेरा जवाब देखें - Chris Johnson
एचएम, उबंटू पर मेरे पास न तो कार्यकर्ता है और न ही उपसर्ग सूचीबद्ध है जब मैं ऐसा करता हूं ... - mlissner
उबंटू पर आप उपयोग कर सकते हैं apache2ctl -M सक्रिय मॉड्यूल सूचीबद्ध करने के लिए। - SteffenNielsen


श्रृंखला 8217 और एंडोल द्वारा दिए गए उत्तर दोनों गलत हैं।

सवाल यह था कि अपाचे क्या है या नहीं दौड़ना prefork या कार्यकर्ता। अन्य उत्तरों द्वारा दी गई सलाह केवल बताती है कि क्या चूक एमपीएम (संकलित-मॉड्यूल पर आधारित) है, न कि वर्तमान समय में डिफ़ॉल्ट या दूसरी पसंद का उपयोग किया जा रहा है।

अगर httpd -V prefork दिखाता है, इसका मतलब है कि prefork संकलित-डिफ़ॉल्ट एमपीएम में है। इस प्रक्रिया में दिखाए गए अपाचे कॉन्फ़िगरेशन फ़ाइल सेटिंग को बदलकर इसे ओवरराइड किया जा सकता है:

  1. कॉन्फ़िगरेशन फ़ाइल संपादित करें (उदा। /etc/sysconfig/httpd CentOS / RedHat पर)
  2. इस पंक्ति को जोड़ें या असम्बद्ध करें: HTTPD=/usr/sbin/httpd.worker
  3. अपाचे को पुनरारंभ करें

वास्तव में कौन सा एमपीएम चल रहा है इस प्रक्रिया का उपयोग करके दिखाया जा सकता है:

  1. अपाचे mod_info सक्षम करें
  2. आमतौर पर mod_info url पूछें curl localhost/server-info
  3. "सर्वर सेटिंग्स" अनुभाग "एमपीएम नाम: कार्यकर्ता" दिखाएगा
  4. रन httpd -V फिर से - यह अभी भी prefork दिखाएगा, कार्यकर्ता नहीं

जमीनी स्तर:

  • httpd -V डिफ़ॉल्ट विकल्प दिखाता है, न कि वास्तव में कौन सा विकल्प उपयोग में है

कहने, उपयोग करने वाली कई वेबसाइटों पर कई जवाब हैं httpd -V यह बताएं कि अपाचे प्रीफर्क या कार्यकर्ता चला रहा है या नहीं। वे सब गलत हैं। अपने लिए देखने के लिए उपर्युक्त प्रक्रिया का प्रयास करें।


51
2018-03-16 11:55



एफवाईआई, के अनुसार httpd.apache.org/docs/trunk/mpm.html एमपीएम सभी प्लेटफॉर्म पर एक स्थिर मॉड्यूल हो सकता है, या डीएसओ (यूनिक्स पर) के रूप में बनाया जा सकता है। जब यह एक स्थिर मॉड्यूल के रूप में बनाया गया है, "MPM को बदलने के लिए सर्वर को पुनर्निर्मित किया जाना चाहिए।" क्या सर्वर मॉड्यूल के पुनर्निर्माण को छोड़कर स्थिर मॉड्यूल एमपीएम अपरिवर्तनीय होने के बारे में अपाचे दस्तावेज़ गलत है? - Steven T. Snyder
यह एक उच्च स्तर रैपर के साथ, कुछ distro विशिष्ट की तरह लगता है? - andol
CentOS 6.6 / usr / sbin / httpd, /usr/sbin/httpd.event और /usr/sbin/httpd.worker पर संकलित समय (prefork, घटना और कार्यकर्ता क्रमशः) पर कॉन्फ़िगर किए गए विभिन्न एमपीएम के साथ सभी विशिष्ट बाइनरी हैं। / Etc / sysconfig / httpd में HTTPD की सेटिंग को बदलने से यह नियंत्रित होता है कि बाइनरी init स्क्रिप्ट द्वारा चलाया जाता है। - Paul Haldane
मुझे उबंटू 16.04 एलटीएस पर httpd -V के बजाय apache2 -V चलाया गया था - cnizzardini


उबंटू 14.04 में

a2query -M

बताता है event, prefork, worker

आप इसके लिए प्रतीकात्मक लिंक जोड़कर इसे बदल सकते हैं mpm_<chosen> से mods-available सेवा मेरे mods-enabled में /etc/apache2

एक समय में केवल एक की अनुमति है।


34
2018-01-31 01:48



इसे स्वीकार्य उत्तर होना चाहिए।
हाँ, महान जवाब! सरल और रिटर्न जो आवश्यक है - Flash Thunder


रेडहाट पर और व्युत्पन्न, बस लॉन्च करें top या ps aux और httpd प्रक्रिया का नाम देखें:

  • httpd मतलब अपाचे prefork के रूप में चल रहा है
  • httpd.worker इसका मतलब है कि यह कार्यकर्ता के रूप में चल रहा है

6
2017-07-29 01:22





क्रिस जॉनसन सही है। के लिए जाओ httpd.conf => इस लाइन को जोड़ें:

<Location /server-info>
SetHandler server-info
</Location>

अपाचे को पुनरारंभ करें: /etc/init.d/httpd पुनरारंभ करें। फिर पहुंचें स्थानीय होस्ट / सर्वर-जानकारी अपने ब्राउज़र द्वारा और एमपीएम नाम अनुभाग देखें


4
2017-08-20 00:30



यहां तक ​​कि अच्छी तरह से, इसे <ifModule info_module> </ ifModule> के बीच रखें - Lexib0y


आरएचईएल / फेडोरा / आदि पर, चलाएं httpd -V। आपको कुछ आउटपुट मिलेगा जिसमें निम्नलिखित शामिल हैं:

Server version: Apache/2.2.21 (Unix)
     ...
Architecture:   64-bit
Server MPM:     Prefork
     ...

यहां 'सर्वर एमपीएम' 'प्रीफर्क' है, इसलिए मेरा सर्वर prefork एमपीएम चला रहा है।


3
2017-12-28 17:57



यह जवाब गलत है। मेरा जवाब देखें - Chris Johnson
@ क्रिसज जॉनसन, दिलचस्प खोज ... मेरी समझ यह थी कि एमपीएम को केवल संकलन द्वारा कॉन्फ़िगरेशन द्वारा बदला नहीं जा सका। ऐसा लगता है कि ओपी ने वही सोचा था, क्योंकि उन्होंने "या अधिक तकनीकी रूप से 'के रूप में चलाने के लिए संकलित" के साथ अपने प्रश्न पर टिप्पणी की थी। मैं आपके उत्तर को पुन: उत्पन्न करने में देखूंगा और एक बार जब मैंने इसकी पुष्टि की है तो मैं अपना रद्द कर दूंगा। - Steven T. Snyder
मैंने apache दस्तावेज के माध्यम से पुष्टि की httpd.apache.org/docs/trunk/mpm.html कि एमपीएम को डीएसओ मॉड्यूल के रूप में बनाया जा सकता है और "यूनिक्स और इसी तरह के प्लेटफॉर्म" पर लोड मॉड्यूल निर्देश के साथ गतिशील रूप से लोड किया जा सकता है। तो एमपीएम वास्तव में कुछ परिस्थितियों में लोड समय पर बदला जा सकता है (जो इन दिनों सबसे आम विन्यास हो सकता है ..) - Steven T. Snyder


क्रिस जॉनसन का जवाब सही है।

अपाचे दस्तावेज़ीकरण में दस्तावेज के रूप में जानकारी मॉड्यूल को सक्षम करने के बाद (http://httpd.apache.org/docs/2.2/mod/mod_info.html), यह एक लाइनर आपको एमपीएम का उपयोग करेगा:

links -dump http://localhost/server-info/?server | grep "MPM Name"

2
2017-09-06 11:04





यहां एक और तरीका है जिसे मैं उम्मीद कर सकता हूं कि कौन सा एमपीएम उपयोग में है। निम्नलिखित में जोड़ें httpd.conf:

<IfModule prefork.c>
    Header append X-MPM prefork
</IfModule>
<IfModule worker.c>
    Header append X-MPM worker
</IfModule>

फिर हेडर का उपयोग कर जांचें curl -I localhost | grep X-MPM


2
2017-10-25 23:37





Centos (या rhel) पर आप यह आदेश चला सकते हैं:

ps -ef | grep httpd

अगर आप देखें /usr/sbin/httpd.workerचल रहा है, तो यह कार्यकर्ता एमपीएम का उपयोग कर रहा है। अगर आप देखें /usr/sbin/httpd चल रहा है, तो यह prefork का उपयोग कर रहा है


2
2017-10-03 20:21





डेबियन में डिस्ट्रोज़ की तरह इसे समझने का एक तरीका यह है कि:

apachectl -V | grep -i mpm

2
2017-12-02 00:50