मैं यह कैसे जांच सकता हूं कि अपाचे का कौन सा संस्करण डेबियन मशीन पर स्थापित है?
क्या ऐसा करने की आज्ञा है?
मैं यह कैसे जांच सकता हूं कि अपाचे का कौन सा संस्करण डेबियन मशीन पर स्थापित है?
क्या ऐसा करने की आज्ञा है?
जवाबों:
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
।
apache2ctl -V
रूट विशेषाधिकार के बिना काम नहीं करता है (... और यह संस्करण को प्रिंट नहीं करता है)। जबकि यह अपाचे 2.2 के साथ उबंटू 12 पर काम करता है। मुश्किल।
Debian 7.1
यह मेरे डेबियन के लिए काम करता है:
$ /usr/sbin/apache2 -v
आपको नए डेबियन या उबंटू वितरण के लिए 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....
यह इस बात पर निर्भर करता है कि आपके लिनक्स के संस्करण ने अपाचे सर्वर का नाम कैसे रखा है।
डेबियन और मैक ओएस पर:
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
$ /usr/sbin/apache2 -v
क्योंकि सिर्फ $ apache2 -v
रिटर्न command not found
। यदि आवश्यक हो, तो यह कमांड उपयोगकर्ताओं को अपाचे का रास्ता खोजने में मदद करेगा:ps -ef | grep apache
apache2 -v
डेबियन ( रास्पबेरी पाई पर कम से कम डेबियन 8 (जेसी) पर भी काम करता है )।
मैं Red Hat Linux और निम्न कमांड काम कर रहा हूँ :
httpd -V
इसे सूडो के साथ आजमाएं
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....
मुझे लगता है कि आपको यह सुनिश्चित करना होगा कि आपके पास किस प्रकार की स्थापना द्विआधारी या स्रोत है। यह जांचने के लिए कि बाइनरी पैकेज क्या स्थापित किए गए हैं: रूट अधिकारों के साथ कमांड के बाद निष्पादित करें:
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 (डेबियन)
आप सीधे पैकेज प्रबंधक का भी उपयोग कर सकते हैं:
dpkg -l | grep apache
यह सिर्फ संस्करण संख्या पर केंद्रित नहीं है , लेकिन यह एक व्यापक खोज करेगा, जो आपको मॉड्यूल संस्करण जैसे अन्य उपयोगी जानकारी देगा।
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
।
डेबियन-आधारित प्रणाली पर एक पैकेज (अपाचे सहित) स्थापित संस्करण की जांच करने के लिए एक और तरीका है, हम उपयोग कर सकते हैं:
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 (निचोड़) पर काम करता है :
लिनक्स 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
मैंने "httpd -V" और "apachectl -V" कमांड चलाने की कोशिश की, लेकिन मैं निष्पादित नहीं कर सका और त्रुटि थी:
-ksh: php: नहीं मिला [ऐसी कोई फ़ाइल या निर्देशिका नहीं]
फिर मैंने एक और तरीका आजमाया। मैं अपने सर्वर पर अपाचे निर्देशिका में गया और फिर कमांड को निष्पादित करने की कोशिश की:
./apachectl -v
इसने मेरे लिए काम किया और आउटपुट लौटाया:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
आशा है कि ये आपकी मदद करेगा।
आप उपयोग कर सकते हैं 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"
आप का उपयोग करना अधिक पसंद कर सकते हैं 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"
मेरे लिए apachectl -V
काम नहीं किया, लेकिन apachectl fullstatus
मुझे अपना संस्करण दिया।
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
काम किया।
अपाचे की कुछ स्थापनाएं फ़ुबर हैं (ओरेकल की पैकेजिंग, ओएचएस के बारे में सोचें) और -वी ध्वज को न समझें, और न ही लापता लाइब्रेरी त्रुटियों को चलाने के बिना सीधे आमंत्रित किया जा सकता है।
सबसे आसान तरीका 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
लिए वर्तमान निर्देशिका में होना आवश्यक नहीं है ?
या, कम सीधे:
nmap -A localhost -p 80
-bash: nmap: command not found
निश्चित रूप से टाइपिंग / usr / sbin / apache2 -vशेल में सबसे अच्छा और तेज तरीका है, वैसे यहाँ एक और विकल्प है, बस अगर आपके सर्वर में PHP भी है और आप Apache संस्करण (और बहुत कुछ इकट्ठा करने में रुचि रखते हैं) अधिक प्रोग्राम) त्वरित प्रोग्राम चरणों में।
बस अपने Apache वेब रूट फ़ोल्डर (या जो कुछ भी आपको पसंद है) में एक info.php फ़ाइल बनाएं और इसके अंदर ये लिखें:
<?php
phpinfo();
?>
अब करने के लिए जाना yoursite.com/info.php (या स्थानीय होस्ट / info.php स्थानीय मशीनों के लिए)।
आप अपने चर संस्करण PHP चर खंड में देखेंगे , यहाँ एक उदाहरण है:
इसके अलावा, कृपया ध्यान दें कि ये चरण स्पष्ट रूप से PHP एकीकरण के साथ किसी भी वेब सर्वर पर लागू होते हैं , इसलिए यह अपाचे तक सीमित नहीं है और एक बार निर्मित होने के बाद यह पृष्ठ काम में लिया जा सकता है (बस इसे उत्पादन वातावरण पर निकालना न भूलें !!)