Как проверить, какая версия Apache установлена на машине Debian?
Есть ли команда для этого?
Как проверить, какая версия Apache установлена на машине Debian?
Есть ли команда для этого?
Попробуйте apachectl -V:
$ apachectl -V
Server version: Apache/2.2.9 (Unix)
Server built: Sep 18 2008 21:54:05
Server 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
.
Это работает для моего 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 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....
Я использую Red Hat Linux и работает следующая команда:
httpd -V
Команда зависит от того, как ваша версия 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.
Если вы хотите запустить команду с полным каталогом, например user3786265, но не знаете, где находится ваш apache, используйте команду whereis
:
whereis httpd
Попробуйте с помощью 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 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 apache
Это не ориентируется только на номер версии, но это сделает более широкий поиск, который даст вам другую полезную информацию, такую как версии модулей.
Для меня это работает на Debian 6 (Squeeze):
Linux www809 2.6.26-2-xen-686 # 1 SMP Wed Sep 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
Еще один способ проверить установленную версию пакета (включая 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
Я попробовал запустить команду "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 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"
Я думаю, вы должны быть уверены, какой тип установки у вас есть двоичный или источник. Чтобы проверить, какие бинарные пакеты установлены: с правами 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)
Для меня apachectl -V
не работает, но apachectl fullstatus
предоставил мне свою версию.
Некоторые установки 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
Большинство двоичных файлов (не все) содержат их версию (по крайней мере, их основную версию) как статические строки. Это мой путь к получению версий (или подтверждение того, что бинарное справочное сообщение соответствует действительности на земле).
Или, менее прямо:
nmap -A localhost -p 80
dlocate -s apache2 | grep '^Version:'
Конечно, типизация /usr/sbin/apache 2 -v в оболочке - лучший и быстрый способ, кстати, здесь еще один вариант, на всякий случай, если PHP тоже на вашем сервере, и вы заинтересованы в сборе версии Apache (и намного больше информации) в быстрых программных шагах.
Просто создайте файл info.php в своей корневой папке Apache (или как угодно) и напишите их внутри него:
<?php
phpinfo();
?>
Теперь перейдите на сайт yoursite.com/info.php(или localhost/info.php для локальных машин).
Вы увидите версию Apache в разделе "Переменные PHP", вот пример:
phpinfo() пример страницы дампа
Кроме того, обратите внимание, что эти шаги, очевидно, применимы к любому веб-серверу с интеграцией PHP, поэтому он не ограничивается Apache и когда-то созданный, эта страница может быть удобной при разработке (просто не забудьте удалите его в производственных условиях!)