Как я могу проверить, какая версия 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. Tricky.
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.
В 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.
Если вы хотите выполнить команду с полным каталогом, как пользователь3737265, но не знаете, где находится ваш 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
Попробуйте с sudo
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: not found [Нет такого файла или каталога]
Тогда я попробовал другой способ. Я пошел в каталог 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 на Raspberry Pi). Тем apachectl -V
не менее, сделал работу.
Некоторые установки Apache являются fubar (подумайте, что 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();
?>
Теперь перейдите на yoursite.com/info.php (или localhost / info.php для локальных машин).
Вы увидите свою версию Apache в разделе PHP Variables , вот пример:
phpinfo () пример дампа страницы
Также обратите внимание, что эти шаги, очевидно, применимы к любому веб-серверу с интеграцией PHP, поэтому он не ограничивается Apache, и однажды созданная эта страница может пригодиться при разработке (просто не забудьте удалить ее в производственных средах !!)