Як я можу перевірити, яка версія Apache встановлена на машині Debian?
Чи є команда для цього?
Як я можу перевірити, яка версія Apache встановлена на машині Debian?
Чи є команда для цього?
Відповіді:
Спробуйте 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
не працює без привілеїв root (... і не друкує версію). Тоді як він працює на Ubuntu 12 з Apache 2.2. Хитрий.
Debian 7.1
Це працює для мого Debian:
$ /usr/sbin/apache2 -v
Ви повинні використовувати apache2ctl -v або apache2 -v для новіших дистрибутивів Debian або Ubuntu.
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....
Команда змінюється залежно від того, як ваша версія Linux назвала Apache Server.
На Debian та Mac OS:
apachectl -v
На Red Hat та Amazon EC2 Linux використовують:
httpd -v
В інших версіях Linux спробуйте:
apache2 -v
Ви можете використовувати два різних прапори:
-v # gives you the version number
-V # gives you the compile settings including version number.
Якщо ви хочете запустити команду з повним каталогом, як користувач3786265, але не знаєте, де знаходиться ваш apache, скористайтеся whereis
командою:
whereis httpd
$ /usr/sbin/apache2 -v
тому що просто $ apache2 -v
повертається command not found
. Ця команда допоможе користувачам знайти шлях до Apache, якщо потрібно:ps -ef | grep apache
apache2 -v
також працює над Debian (принаймні, Debian 8 (Jessie) на Raspberry Pi).
Я використовую 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....
Я думаю, ви повинні бути впевнені, який тип установки у вас є бінарним чи джерелом. Щоб перевірити, які встановлені бінарні пакети: з правами root виконайте таку команду:
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"
результат повинен бути чимось на кшталт: Версія сервера: Apache / 2.4.10 (Debian)
Ви також можете використовувати менеджер пакунків безпосередньо:
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
.
Іншим способом перевірити пакет (включаючи Apache) встановлену версію на базі системи Debian, ми можемо використовувати:
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
Для мене це працює на Debian 6 (Squeeze):
Linux www809 2.6.26-2-xen-686 # 1 SMP ср 21 вересня 09:56:47 UTC 2011 i686 GNU / Linux
Я повинен був піти правильним шляхом:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: рядок 71: ulimit: відкриті файли: неможливо змінити ліміт: Операція не дозволена
Версія сервера: Apache / 2.2.21 (Unix)
Побудований сервер: 17 грудня 2011 19:57:53
Я спробував запустити команди "httpd -V" і "apachectl -V", але я не міг виконати і отримував помилку:
-ksh: php: не знайдено [Немає такого файлу чи каталогу]
Тоді я спробував інший спосіб. Я зайшов до каталогу Apache на своєму сервері, а потім спробував виконати команду:
./apachectl -v
Це працювало для мене і повертало вихід:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
Я сподіваюся, що це допомагає.
Ви можете використовувати apachectl -V
або apachectl -v
. Вони обидва повернуть інформацію про версію Apache!
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.
(Debian 8 - Raspbian on Raspberry Pi). Однак apachectl -V
справились.
Деякі установки Apache є фубарами (подумайте, що Oracle упакує його, OHS) і не розуміють прапор -V, і їх не можна викликати безпосередньо, не стикаючись з відсутніми помилками бібліотеки.
Найпростіший спосіб - використовувати strings
команду (частину binutils
) на бінарному httpd та grep для рядка, який може нагадувати версію. Наприклад, якщо припустимо, що ваш 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 (і багато іншого більше інформації) у швидких програмних кроках.
Просто створіть файл info.php у вашій кореневій папці Apache (або що завгодно) та запишіть їх усередину:
<?php
phpinfo();
?>
Тепер перейдіть на сайт yourite.com/info.php (або localhost / info.php для місцевих машин).
Ви побачите свою версію Apache у розділі змінних PHP , ось приклад:
Приклад дамп-сторінки phpinfo ()
Також зауважте, що ці кроки, очевидно, стосуються будь-якого веб-сервера з інтеграцією PHP, тому він не обмежується Apache, і колись створена сторінка може бути зручною під час розробки (просто не забудьте видалити її у виробничих середовищах !!)