डेबियन मशीन पर स्थापित अपाचे का संस्करण


314

मैं यह कैसे जांच सकता हूं कि अपाचे का कौन सा संस्करण डेबियन मशीन पर स्थापित है?

क्या ऐसा करने की आज्ञा है?


4
स्टैक ओवरफ्लो प्रोग्रामिंग और विकास के सवालों के लिए एक साइट है। यह प्रश्न ऑफ़-टॉपिक प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। देखें किन विषयों मैं यहाँ के बारे में पूछ सकते हैं सहायता केंद्र में। शायद सुपर यूजर या यूनिक्स और लिनक्स स्टैक एक्सचेंज पूछने के लिए बेहतर जगह होगी। यह भी देखें कि मैं देव ऑप्स के बारे में प्रश्न कहां से पोस्ट करूं?
jww

जवाबों:


418

Apachectl -V आज़माएं:

$ apachectl -V
Server version: Apache/2.2.9 (Unix)
Server built:   Sep 18 2008 21:54:05
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
... etc ...

यदि यह आपके लिए काम नहीं करता है, तो कमांड को चलाएं sudo


2
चेतावनी: जब उबंटू 14 पर अपाचे 2.4 चल रहा है, apache2ctl -Vरूट विशेषाधिकार के बिना काम नहीं करता है (... और यह संस्करण को प्रिंट नहीं करता है)। जबकि यह अपाचे 2.2 के साथ उबंटू 12 पर काम करता है। मुश्किल।
फिलिप्पे_ बी

यह उबंटू 12.04 पर काम करता है और मेरा मानना ​​है कि बहुत से लोग अभी भी उबंटू 12.04 का उपयोग कर रहे हैं, मेरी तरह, जो अभी तक 14 में अपग्रेड नहीं करना चाहते हैं, जब तक कि विभिन्न सॉफ्टवेयर के साथ सभी कीड़े पूरी तरह से समाप्त नहीं हो जाते हैं।
JohnMerlino

पर काम करता हैDebian 7.1
Cyclonecode

apachectl -V duse't suse10.04 पर काम करते हैं इसके बजाय हमें रूट अनुमति के साथ सही उत्तर प्राप्त करने के लिए / usr / sbin / apache2ctl -v टाइप करना होगा
farzam

1
Red Hat Enterprise Linux 6 (64-बिट) पर काम ठीक
डेमीशीप


34

आपको नए डेबियन या उबंटू वितरण के लिए apache2ctl -v या apache2 -v का उपयोग करना चाहिए ।

apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built:   May 12 2011 11:58:18

या आप अधिक जानकारी प्राप्त करने के लिए apache2 -V का उपयोग कर सकते हैं ।

apache2 -V
Server version: Apache/2.2.16 (Debian)
Server built:   May 12 2011 11:58:18
Server's Module Magic Number: x
Server loaded:  APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.2.12, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....

या तो ऊपरी -V या लोअरकेस -v ठीक है, लेकिन आपको sudo का उपयोग करने की आवश्यकता हो सकती है जब तक कि आप रूट के रूप में लॉग इन न हों।
sdxp

27

यह इस बात पर निर्भर करता है कि आपके लिनक्स के संस्करण ने अपाचे सर्वर का नाम कैसे रखा है।

डेबियन और मैक ओएस पर:

apachectl -v

Red Hat और Amazon के EC2 Linux उपयोग पर:

httpd -v

लिनक्स के अन्य जेलों पर कोशिश करें:

apache2 -v

आप दो अलग-अलग झंडे का उपयोग कर सकते हैं:

-v # gives you the version number
-V # gives you the compile settings including version number.

अगर आप कमांड को पूरी निर्देशिका के साथ चलाना चाहते हैं जैसे user3786265 ने किया है, लेकिन यह नहीं जानता है कि आपका अपाचे कहाँ स्थित है, तो whereisकमांड का उपयोग करें :

whereis httpd

1
प्रतिभाशाली। आपका जवाब सर्वर वातावरण की सीमा को कवर करता है जो कि अपाचे संस्करण को खोजने की कोशिश कर रहा है। अगर यह मेरा सवाल था, तो मैंने इसे उत्तर के रूप में चिह्नित किया है । शायद केवल एक चीज जो मैं आपके उत्तर में जोड़ना चाहूंगा, वह है सामान्य रास्ते। कुछ वातावरणों में कमांड $ PATH में नहीं हो सकती है, इसलिए इन आदेशों की कोशिश करने वाले लोग फंस सकते हैं। उदाहरण के लिए मेरे डेबियन एनवायरो में, मुझे उपयोग करना पड़ा $ /usr/sbin/apache2 -vक्योंकि सिर्फ $ apache2 -vरिटर्न command not found। यदि आवश्यक हो, तो यह कमांड उपयोगकर्ताओं को अपाचे का रास्ता खोजने में मदद करेगा:ps -ef | grep apache
प्रेरित

apache2 -vडेबियन ( रास्पबेरी पाई पर कम से कम डेबियन 8 (जेसी) पर भी काम करता है )।
पीटर मोर्टेंसन


15

इसे सूडो के साथ आजमाएं

apachectl -V
-bash: apachectl: command not found

sudo apachectl -V
Server version: Apache/2.4.6 (Debian)
Server built:   Aug 12 2013 18:20:23
Server's Module Magic Number: 20120211:24
Server loaded:  APR 1.4.8, APR-UTIL 1.5.3
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   32-bit
Server MPM:     prefork
  threaded:     no
  forked:     yes (variable process count)
Server compiled with....
bla bla....

यदि आपकी कॉन्फ़िगरेशन फ़ाइलों में वर्तमान में सिंटैक्स त्रुटि है, तो यह काम नहीं करेगा
वोल्फगैंग फ़ाह्ल

12

मुझे लगता है कि आपको यह सुनिश्चित करना होगा कि आपके पास किस प्रकार की स्थापना द्विआधारी या स्रोत है। यह जांचने के लिए कि बाइनरी पैकेज क्या स्थापित किए गए हैं: रूट अधिकारों के साथ कमांड के बाद निष्पादित करें:

dpkg -l |grep apache2

परिणाम कुछ इस तरह होना चाहिए:

dpkg -l |grep apache2
ii  apache2                               2.4.10-10+deb8u8                      amd64        Apache HTTP Server
ii  apache2-bin                           2.4.10-10+deb8u8                      amd64        Apache HTTP Server (modules and other binary files)
ii  apache2-data                          2.4.10-10+deb8u8                      all          Apache HTTP Server (common files)
ii  apache2-doc                           2.4.10-10+deb8u8                      all          Apache HTTP Server (on-site documentation)

संस्करण खोजने के लिए आप चला सकते हैं:

apache2ctl -V |grep -i "Server version"

परिणाम कुछ इस तरह होना चाहिए: सर्वर संस्करण: अपाचे / 2.4.10 (डेबियन)


11

आप सीधे पैकेज प्रबंधक का भी उपयोग कर सकते हैं:

dpkg -l | grep apache

यह सिर्फ संस्करण संख्या पर केंद्रित नहीं है , लेकिन यह एक व्यापक खोज करेगा, जो आपको मॉड्यूल संस्करण जैसे अन्य उपयोगी जानकारी देगा।


अपाचे पर प्रतिबंध सीधे dpkg को पारित किया जा सकता है। एक स्वचालित व्याख्या के लिए आपको एक सूची के बजाय एकल मूल्य की आवश्यकता होती है, और आपके पास "अनइंस्टॉल" एपाचे 2- * पैकेज नहीं होना चाहिए। कृपया यह भी विचार dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-या dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
स्मोइ

6

डेबियन-आधारित प्रणाली पर एक पैकेज (अपाचे सहित) स्थापित संस्करण की जांच करने के लिए एक और तरीका है, हम उपयोग कर सकते हैं:

apt-cache policy <package_name>

उदाहरण के लिए Apache

apt-cache policy apache2

जो कुछ इस तरह दिखाएगा ( Installedपंक्ति को देखें):

$ apt-cache policy apache2
apache2:
  Installed: (none)
  Candidate: 2.2.22-1ubuntu1.9
  Version table:
     2.2.22-1ubuntu1.9 0
        500 http://hk.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     2.2.22-1ubuntu1 0
        500 http://hk.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

6

मेरे लिए यह डेबियन 6 (निचोड़) पर काम करता है :

लिनक्स www809 2.6.26-2-xen-686 # 1 एसएमपी बुध 21 सितंबर 09:56:47 यूटीसी 2011 i686 GNU / लिनक्स

मुझे सही रास्ते पर जाना था:

/usr/local/apache/bin** $ **./apachectl -v

./apachectl: लाइन 71: ulimit: खुली फाइलें: सीमा को संशोधित नहीं कर सकता: ऑपरेशन की अनुमति नहीं
सर्वर संस्करण: Apache / 2.2.21 (Unix)
सर्वर बनाया गया: Dec 17 2011 19:57:53


5

मैंने "httpd -V" और "apachectl -V" कमांड चलाने की कोशिश की, लेकिन मैं निष्पादित नहीं कर सका और त्रुटि थी:

-ksh: php: नहीं मिला [ऐसी कोई फ़ाइल या निर्देशिका नहीं]

फिर मैंने एक और तरीका आजमाया। मैं अपने सर्वर पर अपाचे निर्देशिका में गया और फिर कमांड को निष्पादित करने की कोशिश की:

./apachectl -v

इसने मेरे लिए काम किया और आउटपुट लौटाया:

Server version: Apache/2.2.20 (Unix)
Server built:   Sep  6 2012 17:22:16

आशा है कि ये आपकी मदद करेगा।


5
  1. आप उपयोग कर सकते हैं apachectl -Vया apachectl -v। दोनों अपाचे संस्करण की जानकारी वापस कर देंगे!

        xgqfrms:~/workspace $ apachectl -v
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
    
    
        xgqfrms:~/workspace $ apachectl -V
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
        Server's Module Magic Number: 20120211:27
        Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
        Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
        Architecture:   64-bit
        Server MPM:     prefork
          threaded:     no
            forked:     yes (variable process count)
        Server compiled with....
         -D APR_HAS_SENDFILE
         -D APR_HAS_MMAP
         -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
         -D APR_USE_SYSVSEM_SERIALIZE
         -D APR_USE_PTHREAD_SERIALIZE
         -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
         -D APR_HAS_OTHER_CHILD
         -D AP_HAVE_RELIABLE_PIPED_LOGS
         -D DYNAMIC_MODULE_LIMIT=256
         -D HTTPD_ROOT="/etc/apache2"
         -D SUEXEC_BIN="/usr/lib/apache2/suexec"
         -D DEFAULT_PIDLOG="/var/run/apache2.pid"
         -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
         -D DEFAULT_ERRORLOG="logs/error_log"
         -D AP_TYPES_CONFIG_FILE="mime.types"
         -D SERVER_CONFIG_FILE="apache2.conf"

  2. आप का उपयोग करना अधिक पसंद कर सकते हैं apache2 -Vया apache2 -v। यह याद रखना आसान लगता है!

        xgqfrms:~/workspace $ apache2 -v
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
    
    
        xgqfrms:~/workspace $ apache2 -V
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
        Server's Module Magic Number: 20120211:27
        Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
        Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
        Architecture:   64-bit
        Server MPM:     prefork
          threaded:     no
            forked:     yes (variable process count)
        Server compiled with....
         -D APR_HAS_SENDFILE
         -D APR_HAS_MMAP
         -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
         -D APR_USE_SYSVSEM_SERIALIZE
         -D APR_USE_PTHREAD_SERIALIZE
         -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
         -D APR_HAS_OTHER_CHILD
         -D AP_HAVE_RELIABLE_PIPED_LOGS
         -D DYNAMIC_MODULE_LIMIT=256
         -D HTTPD_ROOT="/etc/apache2"
         -D SUEXEC_BIN="/usr/lib/apache2/suexec"
         -D DEFAULT_PIDLOG="/var/run/apache2.pid"
         -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
         -D DEFAULT_ERRORLOG="logs/error_log"
         -D AP_TYPES_CONFIG_FILE="mime.types"
         -D SERVER_CONFIG_FILE="apache2.conf"


3

मेरे लिए apachectl -Vकाम नहीं किया, लेकिन apachectl fullstatusमुझे अपना संस्करण दिया।


'apachectl -v' मेरे लिए मैक, सेंटोस और उबंटू पर काम करता है। आप किस डिस्ट्रो पर चल रहे थे? इस कार्य को करने के लिए apachectl fullstatus को mod_status की आवश्यकता होती है। तो यह सार्वभौमिक समाधान भी नहीं है।
कोन्ज़ुलिक

apachectl fullstatusमेरे लिए काम नहीं किया। मुझे मिल गया /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.(डेबियन 8 - रास्पबेरी पाई पर रास्पबियन)। हालांकि, apachectl -Vकाम किया।
पीटर मोर्टेंसन

3

अपाचे की कुछ स्थापनाएं फ़ुबर हैं (ओरेकल की पैकेजिंग, ओएचएस के बारे में सोचें) और -वी ध्वज को न समझें, और न ही लापता लाइब्रेरी त्रुटियों को चलाने के बिना सीधे आमंत्रित किया जा सकता है।

सबसे आसान तरीका httpd बाइनरी और grep पर stringsकमांड (भाग binutils) का उपयोग एक स्ट्रिंग के लिए है जो एक संस्करण जैसा हो सकता है। उदाहरण के लिए, आपके httpdबाइनरी को निर्देशिका के अधीन माना जाता है /foo/bar:

$ strings /foo/bar/httpd  | grep 2.2
GLIBC_2.2.5
Oracle-HTTP-Server/2.2.22 (Unix)
Success_Accepted_202
202 Accepted

अधिकांश बायनेरिज़ (सभी नहीं) में उनके संस्करण (कम से कम उनके प्रमुख संस्करण) स्थिर तार के रूप में होते हैं। यह संस्करण प्राप्त करने का मेरा तरीका है (या किसी द्विआधारी की मदद संदेश मेल खाता है कि जमीन पर वास्तविकता क्या है।)


क्या इसके httpdलिए वर्तमान निर्देशिका में होना आवश्यक नहीं है ?
पीटर मोर्टेंसन

1
इससे मुझे नया उबंटू इंस्टॉलेशन के भीतर से अपने पिछले पुराने रूट पर अपने पिछले संस्करण का पता लगाने में मदद मिली। वर्थ उल्लेख: "स्ट्रिंग्स" पैकेज "बिनुटिल्स" का हिस्सा है
ज़ीफिरो

@PeterMortensen, yep मुझे लगता है कि मेरा उदाहरण माना जाता है कि httpd वर्तमान निर्देशिका में होगा (और पाठक उदाहरण के अनुसार अनुमान लगाएगा और आवश्यकतानुसार समायोजित करेगा।) अब मैं अपना उत्तर संपादित कर रहा हूं ताकि वह प्रतिबिंबित हो सके
luis.espinal

@ ज़ेफिरो, सिर ऊपर करने के लिए धन्यवाद। मैं Binutils का उल्लेख करने के लिए अपने उत्तर को अपडेट करूंगा।
luis.espinal

2

या, कम सीधे:

nmap -A localhost -p 80


यदि अपाचे को HTTP हेडर में संस्करण जानकारी जोड़ने के लिए कॉन्फ़िगर नहीं किया गया है, तो आपको कुछ भी नहीं मिलेगा।
Marki555

नैंप स्थापित नहीं किया जा सकता है (उदाहरण के लिए रास्पबेरी पाई पर):-bash: nmap: command not found
पीटर मोर्टेंसन

2

निश्चित रूप से टाइपिंग / usr / sbin / apache2 -vशेल में सबसे अच्छा और तेज तरीका है, वैसे यहाँ एक और विकल्प है, बस अगर आपके सर्वर में PHP भी है और आप Apache संस्करण (और बहुत कुछ इकट्ठा करने में रुचि रखते हैं) अधिक प्रोग्राम) त्वरित प्रोग्राम चरणों में।

बस अपने Apache वेब रूट फ़ोल्डर (या जो कुछ भी आपको पसंद है) में एक info.php फ़ाइल बनाएं और इसके अंदर ये लिखें:

<?php
    phpinfo();
?>

अब करने के लिए जाना yoursite.com/info.php (या स्थानीय होस्ट / info.php स्थानीय मशीनों के लिए)।

आप अपने चर संस्करण PHP चर खंड में देखेंगे , यहाँ एक उदाहरण है:

phpinfo () उदाहरण डंप पृष्ठ

इसके अलावा, कृपया ध्यान दें कि ये चरण स्पष्ट रूप से PHP एकीकरण के साथ किसी भी वेब सर्वर पर लागू होते हैं , इसलिए यह अपाचे तक सीमित नहीं है और एक बार निर्मित होने के बाद यह पृष्ठ काम में लिया जा सकता है (बस इसे उत्पादन वातावरण पर निकालना न भूलें !!)


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