Comment vérifier quelle version d'Apache est installée sur une machine Debian?
Y a-t-il une commande pour faire cela?
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
.
Cela fonctionne pour ma Debian:
$ /usr/sbin/Apache2 -v
Vous devez utiliser Apache2ctl -v ou Apache2 -v pour les nouvelles distributions Debian ou Ubuntu.
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....
J'utilise Red Hat Linux et la commande suivante fonctionne:
httpd -V
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
Sous Red Hat et Amazon EC2 sous Linux, utilisez:
httpd -v
Essayez d’autres versions de Linux:
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 voulez exécuter la commande avec le répertoire complet comme le faisait l'utilisateur mais ne savez pas où se trouve votre Apache, utilisez la commande whereis
:
whereis httpd
Essayez 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 binaire ou source. Pour vérifier quels paquets 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 que vous pouvez exécuter:
Apache2ctl -V |grep -i "Server version"
le résultat devrait ressembler à: Version du serveur: Apache/2.4.10 (Debian)
Vous pouvez également utiliser directement le gestionnaire de paquets:
dpkg -l | grep Apache
Ce n'est pas centré sur seulement le numéro de version, mais cela fera une recherche plus large, qui vous donnera d'autres informations utiles, telles que les versions de modules.
Pour moi, cela fonctionne sur Debian 6 (Squeeze):
Linux www809 2.6.26-2-xen-686 # 1 SMP mercredi 21 septembre 09:56:47 UTC 2011 i686 GNU/Linux
Je devais aller sur le bon chemin:
/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)
Serveur construit: 17 déc 2011 2011 19:57:53
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 aurez peut-être plus tendance à 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"
J'ai essayé d'exécuter la commande "httpd -V" et "apachectl -V", mais je ne pouvais pas exécuter et j'obtenais l'erreur:
-ksh: php: non trouvé [Aucun fichier ou répertoire de ce type]
Puis j'ai essayé d'une autre manière. 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.
Une autre façon de vérifier la version installée d'un paquet (y compris Apache) sur un système Debian consiste à utiliser:
apt-cache policy <package_name>
par exemple. pour Apache
apt-cache policy Apache2
qui montrera quelque chose comme (regardez la ligne 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
Certaines installations d’Apache sont fubar (pensez à son emballage, OHS) et ne comprennent pas l’indicateur -V, et ne peuvent pas être invoquées directement sans rencontrer d’erreurs de bibliothèque manquantes.
Le moyen le plus simple consiste à utiliser la commande strings
(qui fait partie de binutils
) sur le fichier binaire httpd et grep pour une chaîne pouvant ressembler à une version. Par exemple, en supposant que votre binaire httpd
est 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 fichiers binaires (pas tous) contiennent leur version (au moins leur version principale) sous forme de chaînes statiques. C’est mon moyen privilégié d’obtenir des versions (ou de corroborer le message d’aide d’un binaire qui correspond à la réalité sur le terrain.)
Pour moi, apachectl -V
n'a pas fonctionné, mais apachectl fullstatus
m'a donné ma version.
Ou, moins directement:
nmap -A localhost -p 80
Assurément, taper /usr/sbin/Apache2 -v dans le shell est le meilleur et le plus rapide chemin à parcourir. En passant, voici une autre option, juste au cas où il y aurait PHP aussi sur votre serveur et vous êtes intéressé par la compilation de la version d'Apache (et de beaucoup d'autres informations) en étapes programmatiques rapides.
Créez simplement un fichier info.php dans votre dossier racine Web Apache (ou ce que vous préférez) et écrivez-le à l'intérieur:
<?php
phpinfo();
?>
Maintenant, allez à yoursite.com/info.php (ou localhost/info.php pour les machines locales).
Vous verrez votre version d'Apache dans la section Variables PHP , voici un exemple:
exemple de page de vidage phpinfo ()
Notez également que ces étapes s’appliquent évidemment à n’importe quel serveur Web doté de PHP intégration, il n’est donc pas limité à Apache et une fois créé cette page pourrait être utile lors du développement (n'oubliez pas de la supprimer dans les environnements de production !!)
dlocate -s Apache2 | grep '^Version:'