¿Cómo puedo verificar qué versión de Apache está instalada en una máquina Debian?
¿Hay un comando para hacer esto?
¿Cómo puedo verificar qué versión de Apache está instalada en una máquina Debian?
¿Hay un comando para hacer esto?
Respuestas:
Prueba 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 no funciona para usted, ejecute el comando con sudo
.
apache2ctl -V
no funciona sin privilegios de root (... y no imprime la versión). Mientras que funciona en Ubuntu 12 con Apache 2.2. Difícil.
Debian 7.1
Esto funciona para mi Debian:
$ /usr/sbin/apache2 -v
Debería usar apache2ctl -v o apache2 -v para distribuciones más recientes de Debian o Ubuntu.
apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built: May 12 2011 11:58:18
o puede usar apache2 -V para obtener más información.
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....
El comando varía según cómo su versión de Linux haya nombrado al servidor Apache.
En Debian y Mac OS:
apachectl -v
En el uso de Red Hat y Amazon EC2 Linux:
httpd -v
En otras versiones de Linux intente:
apache2 -v
Puedes usar dos banderas diferentes:
-v # gives you the version number
-V # gives you the compile settings including version number.
Si desea ejecutar el comando con el directorio completo como lo hizo el usuario3786265 pero no sabe dónde se encuentra su apache, use el whereis
comando:
whereis httpd
$ /usr/sbin/apache2 -v
porque solo $ apache2 -v
regresa command not found
. Este comando ayudará a los usuarios a localizar camino a Apache, si es necesario:ps -ef | grep apache
apache2 -v
También funciona en Debian (al menos Debian 8 (Jessie) en Raspberry Pi).
Estoy usando Red Hat Linux y el siguiente comando funciona:
httpd -V
Pruébalo con 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....
Creo que debe estar seguro de qué tipo de instalación tiene binario o fuente. Para verificar qué paquetes binarios están instalados: con derechos de root, ejecute el siguiente comando:
dpkg -l |grep apache2
El resultado debería ser algo como:
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)
Para encontrar la versión, puede ejecutar:
apache2ctl -V |grep -i "Server version"
El resultado debería ser algo como: Versión del servidor: Apache / 2.4.10 (Debian)
También puede usar el administrador de paquetes directamente:
dpkg -l | grep apache
Esto no se centra solo en el número de versión , sino que hará una búsqueda más amplia, que le dará otra información útil, como las versiones de los módulos.
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
o dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
.
Otra forma de verificar la versión instalada de un paquete (incluido Apache) en un sistema basado en Debian, podemos usar:
apt-cache policy <package_name>
por ejemplo para Apache
apt-cache policy apache2
que mostrará algo como (mira la Installed
línea):
$ 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
Para mí esto funciona en Debian 6 (Squeeze):
Linux www809 2.6.26-2-xen-686 # 1 SMP mié 21 de septiembre 09:56:47 UTC 2011 i686 GNU / Linux
Tuve que ir por el camino correcto:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: línea 71: ulimit: archivos abiertos: no se puede modificar el límite: Operación no permitida
Versión del servidor: Apache / 2.2.21 (Unix)
Servidor construido: 17 de diciembre de 2011 19:57:53
Intenté ejecutar el comando "httpd -V" y "apachectl -V", pero no pude ejecutar y recibí el error:
-ksh: php: no encontrado [No existe tal archivo o directorio]
Luego intenté de otra manera. Fui al directorio de Apache en mi servidor y luego intenté ejecutar el comando:
./apachectl -v
Esto funcionó para mí y devolvió el resultado:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
Espero que esto ayude.
Puedes usar apachectl -V
o apachectl -v
. ¡Ambos devolverán la información de la versión de 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"
Puede ser más como usar apache2 -V
o apache2 -v
. ¡Parece más fácil de recordar!
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"
Para mí apachectl -V
no funcionó, pero apachectl fullstatus
me dio mi versión.
apachectl fullstatus
no funciono para mi Tengo /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian en una Raspberry Pi). Sin embargo, apachectl -V
funcionó.
Algunas instalaciones de Apache son fubar (piense en el empaquetado de Oracle, OHS) y no entienden el indicador -V, ni se pueden invocar directamente sin encontrarse con errores de biblioteca faltantes.
La forma más fácil es usar el strings
comando (parte de binutils
) en el binario httpd y grep para una cadena que pueda parecerse a una versión. Por ejemplo, suponiendo que su httpd
binario está en el directorio /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 mayoría de los binarios (no todos) contienen su versión (al menos su versión principal) como cadenas estáticas. Esta es mi manera de obtener versiones (o corroborar lo que el mensaje de ayuda de un binario coincide con lo que realmente es la realidad en el terreno).
httpd
necesario estar en el directorio actual para que esto funcione?
O, menos directamente:
nmap -A localhost -p 80
-bash: nmap: command not found
Seguramente escribir / usr / sbin / apache2 -v en el shell es la mejor y más rápida forma de hacerlo, por cierto aquí hay otra opción, en caso de que también haya PHP en su servidor y esté interesado en recopilar la versión de Apache (y mucho más información) en pasos programáticos rápidos.
Simplemente haga un archivo info.php en su carpeta raíz web Apache (o lo que quiera) y escríbalos dentro de él:
<?php
phpinfo();
?>
Ahora vaya a yoursite.com/info.php (o localhost / info.php para máquinas locales).
Verá su versión de Apache en la sección Variables de PHP , aquí hay un ejemplo:
Página de volcado de ejemplo de phpinfo ()
Además, tenga en cuenta que estos pasos obviamente se aplican a cualquier servidor web con integración PHP, por lo que no se limita a Apache y, una vez creada, esa página podría ser útil durante el desarrollo (¡simplemente no olvide eliminarla en entornos de producción!)