2008-11-14 18 views
280

¿Cómo puedo verificar qué versión de Apache está instalada en una máquina Debian?Versión de Apache instalada en una máquina Debian

¿Hay un comando para hacer esto?

+1

Stack Overflow es un sitio para preguntas de programación y desarrollo. Esta pregunta parece estar fuera de tema porque no se trata de programación o desarrollo. Consulte [Qué temas puedo preguntar aquí] (http://stackoverflow.com/help/on-topic) en el Centro de ayuda. Tal vez [Superusuario] (http://superuser.com/) o [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) sería un mejor lugar para preguntar. También vea [¿Dónde publico preguntas sobre Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww

Respuesta

370

Try 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 esto no funciona para usted, ejecute el comando con sudo.

+3

No funciona en Debian estándar 2.6.32-5-686-bigmem –

+2

No hay tal comando ni paquete. –

+2

Advertencia: cuando se ejecuta Apache 2.4 en Ubuntu 14, '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. –

2

O, menos directamente:

nmap -A localhost -p 80

+0

Si apache está configurado para no agregar información de versión a los encabezados HTTP, no encontrará nada. – Marki555

+0

obtengo "nmap: comando no encontrado" – Black

+0

nmap puede no estar instalado (por ejemplo, en una Raspberry Pi): '-bash: nmap: comando no encontrado' –

3

Para mí apachectl -V no funcionó, pero apachectl fullstatus me dio mi versión.

+0

'apachectl -v' funciona para Mac, CentOS y Ubuntu. ¿En qué distribución estabas corriendo? apachectl fullstatus necesita mod_status para hacer que esto funcione. Entonces tampoco es una solución universal. – Konzula

+0

'apachectl fullstatus' no funcionó para mí. Obtuve '/ usr/sbin/apachectl: 101:/usr/sbin/apachectl: www-browser: no encontrado 'www-browser -dump http: // localhost: 80/server-status' failed. (Debian 8 - Raspbian en una Raspberry Pi). Sin embargo, 'apachectl -V' funcionó. –

27

Debe utilizar apache2ctl -v -v o apache2 para nuevas distribuciones 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 utilizar 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.... 
124

Esto funciona para mi Debian:

$ /usr/sbin/apache2 -v 
+5

funciona también con Ubuntu –

6

Para mí esto funciona en Debian 6 (Squeeze):

Linux www809 2.6.26-2-xen-686 #1 SMP Wed Sep 21 09:56:47 UTC 2011 i686 GNU/Linux

tuve que ir por el camino correcto:

/usr/local/apache/bin** $ **./apachectl -v 

./apachectl: line 71: ulimit: open files: cannot modify limit: Operation not permitted
Server version: Apache/2.2.21 (Unix)
Server built: Dec 17 2011 19:57:53

15

intentarlo 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.... 
+0

Esto no funcionará si actualmente hay un error de sintaxis en sus archivos de configuración –

24

estoy usando Red Hat Linux y las siguientes obras de comando:

httpd -V 
+0

Esto funcionó en las ventanas de Xampp también –

9

también puede utilizar el gestor de paquetes directamente:

dpkg -l | grep apache 

Esto no es se centró en solo el número de versión, pero hará una búsqueda más amplia, que le dará otro uso información ul, como versiones de módulo.

+0

¡De acuerdo! ¡La forma más precisa! – GTodorov

+0

La restricción a apache se puede pasar a dpkg directamente. Para una interpretación automatizada, también necesita un único valor en lugar de una lista, y no debe mostrar los paquetes apache2- * "desinstalados". Considere también 'dpkg -l apache2 | grep^ii | awk '{print $ 3}' | corte -f1 -d-'or 'dpkg -l" apache2 * "| grep^ii | awk '{print $ 3}' | corte -f1 -d- | cabeza -n 1'. – smoe

5

Otra forma redonda para comprobar un paquete (incluyendo Apache) versión instalada en un sistema basado en Debian, podemos utilizar:

apt-cache policy <package_name> 

por ejemplopara Apache

apt-cache policy apache2 

que mostrará algo así como (mirar la línea 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 
5

He intentado ejecutar el comando "httpd -V" y "apachectl -V", pero no pude ejecutar y estaba recibiendo el error:

-ksh: php: not found [No such file or directory]

Luego probé de otra manera. Fui al directorio de Apache en mi servidor y luego trató de ejecutar el comando:

./apachectl -v 

Esto funcionó para mí y volví la salida:

Server version: Apache/2.2.20 (Unix) 
Server built: Sep 6 2012 17:22:16 

espero que esto ayude.

21

El comando varía según la forma en que su versión de Linux haya denominado el Servidor Apache.

En Debian y Mac OS:

apachectl -v 

En Red Hat y Amazon EC2 Linux utilizan:

httpd -v 

En otras verisons de Linux Proveedores:

apache2 -v 

Se puede utilizar 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 user3786265 hice, pero no sabe dónde se encuentra su Apache, utilice el comando whereis:

whereis httpd 
+1

Brillante. Su respuesta cubre la gama de entornos de servidor en los que uno podría estar tratando de encontrar la versión de Apache. Si fuera mi pregunta, habría marcado esto como * la respuesta *. Quizás lo único que sugiero agregar a su respuesta son los caminos comunes. En algunos entornos, el comando puede no estar en $ PATH, por lo que las personas que prueban estos comandos pueden quedarse atascadas. p.ej. En mi entorno Debian, tuve que usar '$/usr/sbin/apache2 -v' porque solo' $ apache2 -v' devuelve 'comando no encontrado'. Este comando ayudará a los usuarios a encontrar la ruta a apache, si es necesario: 'ps -ef | grep apache' – inspirednz

+0

'apache2 -v' también funciona en Debian (al menos [Debian 8] (https://en.wikipedia.org/wiki/Debian#Release_timeline) (Jessie) en Raspberry Pi). –

1
dlocate -s apache2 | grep '^Version:' 
3

Algunas instalaciones de Apache son fubar (piense en el paquete de Oracle, OHS) y no comprende el indicador -V, ni puede invocarse directamente sin tener que encontrar errores de biblioteca faltantes.

La manera más fácil es usar el comando strings (parte de binutils) en httpd binary y grep para una cadena que podría parecerse a una versión. Por ejemplo, asumiendo que su httpd binario es 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 go-a manera de conseguir versiones (o para corroborar lo que coincide con el mensaje de ayuda de un binario de lo que la realidad sobre el terreno es en realidad.)

+0

¿No se requiere 'httpd' para estar en el directorio actual para que esto funcione? –

+1

Esto me ayudó a encontrar mi versión anterior en mi antigua raíz montada desde la nueva instalación de Ubuntu. Vale la pena mencionar: "strings" es parte del paquete "binutils" – Zefiro

+0

@PeterMortensen, sí. Supongo que mi ejemplo suponía que httpd estaría en el directorio actual (y que el lector lo deduciría del ejemplo y lo ajustaría según fuera necesario). * Estoy editando mi respuesta ahora para reflejar eso *. –

5
  1. Usted puede utilizar 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"

  2. Usted puede ser más como el uso de 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"

1

escribir Seguramente /usr/sbin/apache2 -v en la cáscara es la mejor y más rápida manera de ir, por cierto aquí es otra opción, por si acaso también hay PHP en su servidor y le interesa recopilar la versión de Apache (y mucha más información) en pasos programáticos rápidos.

Simplemente crea un archivo info.php en la carpeta raíz del servidor web Apache (o lo que quieras) y escribir estos en su interior:

<?php 
    phpinfo(); 
?> 

Ahora ve a yoursite.com/info.php (o localhost/info.php para máquinas locales).

verá su versión de Apache en variables PHP sección, aquí está un ejemplo:

phpinfo() example dump page

Además, tenga en cuenta que estos pasos, obviamente, se aplican a cualquier servidor web con la integración de PHP, por lo que no está limitado a Apache y una vez creado, esa página podría ser útil mientras se desarrolla (¡simplemente no olvides eliminarla en entornos de producción!)

7

Creo que debes estar seguro de qué tipo de instalación tiene binario o fuente. Para comprobar qué paquetes binarios están instalados: con derechos de root execute siguiente comando:

dpkg -l |grep apache2 

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 se puede ejecutar:

apache2ctl -V |grep -i "Server version" 

resultado debería ser algo como: Versión del servidor: Apache/2 .4.10 (Debian)

Cuestiones relacionadas