Comment puis-je vérifier quelle version d'Apache est installée sur une machine Debian?
Existe-t-il une commande pour ce faire?
Comment puis-je vérifier quelle version d'Apache est installée sur une machine Debian?
Existe-t-il une commande pour ce faire?
Réponses:
Essayez 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 ...
Si cela ne fonctionne pas pour vous, exécutez la commande avec sudo
.
apache2ctl -V
ne fonctionne pas sans privilèges root (... et il n'imprime pas la version). Alors que cela fonctionne sur Ubuntu 12 avec Apache 2.2. Rusé.
Debian 7.1
Cela fonctionne pour mon Debian:
$ /usr/sbin/apache2 -v
Vous devez utiliser apache2ctl -v ou apache2 -v pour les distributions Debian ou Ubuntu plus récentes.
apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built: May 12 2011 11:58:18
ou vous pouvez utiliser apache2 -V pour obtenir plus d'informations.
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....
La commande varie en fonction de la façon dont votre version de Linux a nommé le serveur Apache.
Sur Debian et Mac OS:
apachectl -v
Sur Red Hat et Amazon EC2 Linux, utilisez:
httpd -v
Sur d'autres versions de Linux, essayez:
apache2 -v
Vous pouvez utiliser deux drapeaux différents:
-v # gives you the version number
-V # gives you the compile settings including version number.
Si vous souhaitez exécuter la commande avec le répertoire complet comme l'a fait user3786265 mais ne savez pas où se trouve votre apache, utilisez la whereis
commande:
whereis httpd
$ /usr/sbin/apache2 -v
parce que $ apache2 -v
revient command not found
. Cette commande aidera les utilisateurs à localiser le chemin vers apache, si nécessaire:ps -ef | grep apache
apache2 -v
fonctionne également sur Debian (au moins Debian 8 (Jessie) sur Raspberry Pi).
J'utilise Red Hat Linux et la commande suivante fonctionne:
httpd -V
Essayez-le avec 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....
Je pense que vous devez être sûr du type d'installation que vous avez en binaire ou en source. Pour vérifier quels packages binaires sont installés: avec les droits root, exécutez la commande suivante:
dpkg -l |grep apache2
le résultat devrait être quelque chose comme:
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)
Pour trouver la version, vous pouvez exécuter:
apache2ctl -V |grep -i "Server version"
le résultat devrait être quelque chose comme: Version du serveur: Apache / 2.4.10 (Debian)
Vous pouvez également utiliser directement le gestionnaire de packages:
dpkg -l | grep apache
Cela ne se concentre pas uniquement sur le numéro de version , mais cela fera une recherche plus large, qui vous donnera d'autres informations utiles, comme les versions de module.
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
ou dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
.
Une autre façon de vérifier la version installée d'un paquet (y compris Apache) sur un système basé sur Debian, nous pouvons utiliser:
apt-cache policy <package_name>
par exemple pour Apache
apt-cache policy apache2
qui montrera quelque chose comme (regardez la Installed
ligne):
$ 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
Pour moi, cela fonctionne sur Debian 6 (Squeeze):
Linux www809 2.6.26-2-xen-686 # 1 SMP mer 21 sept. 09:56:47 UTC 2011 i686 GNU / Linux
Je devais aller dans le bon sens:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: ligne 71: ulimit: fichiers ouverts: impossible de modifier la limite: opération non autorisée
Version du serveur: Apache / 2.2.21 (Unix) Version du
serveur: 17 décembre 2011 19:57:53
J'ai essayé d'exécuter la commande "httpd -V" et "apachectl -V", mais je n'ai pas pu l'exécuter et j'obtenais l'erreur:
-ksh: php: introuvable [Aucun fichier ou répertoire de ce type]
Ensuite, j'ai essayé une autre façon. Je suis allé dans le répertoire Apache sur mon serveur, puis j'ai essayé d'exécuter la commande:
./apachectl -v
Cela a fonctionné pour moi et a renvoyé la sortie:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
J'espère que ça aide.
Vous pouvez utiliser apachectl -V
ou apachectl -v
. Les deux renverront les informations de version d'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"
Vous préférerez peut-être utiliser apache2 -V
ou apache2 -v
. Cela semble plus facile à retenir!
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"
Pour moi apachectl -V
n'a pas fonctionné, mais apachectl fullstatus
m'a donné ma version.
apachectl fullstatus
N'a pas travaillé pour moi. J'ai eu /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian sur un Raspberry Pi). Cependant, apachectl -V
a fonctionné.
Certaines installations d'Apache sont fubar (pensez à l'emballage de Oracle, OHS) et ne comprennent pas l'indicateur -V, ni ne peuvent être invoquées directement sans se heurter à des erreurs de bibliothèque manquantes.
Le moyen le plus simple consiste à utiliser la strings
commande (partie de binutils
) sur le binaire httpd et grep pour une chaîne qui pourrait ressembler à une version. Par exemple, en supposant que votre httpd
binaire se trouve dans le répertoire /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
La plupart des binaires (pas tous) contiennent leur version (au moins leur version principale) sous forme de chaînes statiques. C'est ma façon idéale d'obtenir des versions (ou de corroborer ce que le message d'aide d'un binaire correspond à ce qu'est réellement la réalité sur le terrain.)
httpd
nécessaire d'être dans le répertoire actuel pour que cela fonctionne?
Ou, moins directement:
nmap -A localhost -p 80
-bash: nmap: command not found
Sûrement, taper / usr / sbin / apache2 -v dans le shell est le moyen le plus rapide et le plus rapide, en passant, voici une autre option, juste au cas où il y aurait aussi PHP sur votre serveur et que vous souhaitez rassembler la version Apache (et bien plus plus d'infos) en étapes programmatiques rapides.
Créez simplement un fichier info.php dans votre dossier racine Web Apache (ou ce que vous voulez) et écrivez-les à l'intérieur:
<?php
phpinfo();
?>
Allez maintenant sur votresite.com/info.php (ou localhost / info.php pour les machines locales).
Vous verrez votre version Apache dans la section Variables PHP , voici un exemple:
Exemple de page de vidage de phpinfo ()
De plus, veuillez noter que ces étapes s'appliquent évidemment à tout serveur Web avec intégration PHP, donc ce n'est pas limité à Apache et une fois créée, cette page pourrait être pratique lors du développement (n'oubliez pas de la supprimer dans les environnements de production !!)