Advertencia: cuando ejecuta Apache 2.4 en Ubuntu 14, apache2ctl -Vno funciona sin privilegios de root (... y no imprime la versión). Mientras que funciona en Ubuntu 12 con Apache 2.2. Difícil.
philippe_b
Funciona en Ubuntu 12.04 y creo que muchas personas todavía usan Ubuntu 12.04, como yo, que no quieren actualizar a 14 todavía hasta que se eliminen todos los errores con varios programas
Y
Funciona enDebian 7.1
Cyclonecode
apachectl -V no funciona en suse10.04 sino que tenemos que escribir / usr / sbin / apache2ctl -v para obtener la respuesta correcta con permiso de root
farzam
1
Funcionó bien en Red Hat Enterprise Linux 6 (64 bits)
Bien -V o minúscula -v está bien, pero es posible que necesite usar sudo a menos que haya iniciado sesión como root.
sdexp
27
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 whereiscomando:
Brillante. Su respuesta cubre el rango de entornos de servidor en los que uno podría estar tratando de encontrar la versión de Apache. Si fuera mi pregunta, lo habría marcado como la respuesta . Quizás lo único que sugeriría 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 atascados. Por ejemplo, en mi entorno Debian, tuve que usar $ /usr/sbin/apache2 -vporque solo $ apache2 -vregresa command not found. Este comando ayudará a los usuarios a localizar camino a Apache, si es necesario:ps -ef | grep apache
inspirednz
apache2 -vTambién funciona en Debian (al menos Debian 8 (Jessie) en Raspberry Pi).
Peter Mortensen
25
Estoy usando Red Hat Linux y el siguiente comando funciona:
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....
Esto no funcionará si actualmente hay un error de sintaxis en sus archivos de configuración
Wolfgang Fahl
12
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.
La restricción a apache se puede pasar a dpkg directamente. Para una interpretación automatizada, también necesita un valor único en lugar de una lista, y no debe mostrar los paquetes apache2- * "desinstalados". Por favor también considere 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.
smoe
6
Otra forma de verificar la versión instalada de un paquete (incluido Apache) en un sistema basado en Debian, podemos usar:
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
'apachectl -v' funciona para mí en Mac, CentOS y Ubuntu. ¿En qué distribución estabas corriendo? apachectl fullstatus necesita mod_status para que esto funcione. Entonces tampoco es una solución universal.
Konzulic
apachectl fullstatusno 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 -Vfuncionó.
Peter Mortensen
3
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 stringscomando (parte de binutils) en el binario httpd y grep para una cadena que pueda parecerse a una versión. Por ejemplo, suponiendo que su httpdbinario está en el directorio /foo/bar:
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).
¿No es httpdnecesario estar en el directorio actual para que esto funcione?
Peter Mortensen
1
Esto me ayudó a encontrar mi versión anterior en mi raíz vieja montada desde la nueva instalación de Ubuntu. Vale la pena mencionar: "cadenas" es parte del paquete "binutils"
Zefiro
@PeterMortensen, sí. Supongo que mi ejemplo suponía que httpd estaría en el directorio actual (y que el lector inferiría eso del ejemplo y lo ajustaría según sea necesario). Estoy editando mi respuesta ahora para reflejar eso .
luis.espinal
@ Zefiro, gracias por el aviso. Actualizaré mi respuesta para mencionar binutils.
Si apache está configurado para no agregar información de versión a los encabezados HTTP, no encontrará nada.
Marki555
nmap puede no estar instalado (por ejemplo, en una Raspberry Pi):-bash: nmap: command not found
Peter Mortensen
2
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:
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!)
Respuestas:
Prueba apachectl -V:
Si no funciona para usted, ejecute el comando con
sudo
.fuente
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:
fuente
Debería usar apache2ctl -v o apache2 -v para distribuciones más recientes de Debian o Ubuntu.
o puede usar apache2 -V para obtener más información.
fuente
El comando varía según cómo su versión de Linux haya nombrado al servidor Apache.
En Debian y Mac OS:
En el uso de Red Hat y Amazon EC2 Linux:
En otras versiones de Linux intente:
Puedes usar dos banderas diferentes:
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:fuente
$ /usr/sbin/apache2 -v
porque solo$ apache2 -v
regresacommand 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:
fuente
Pruébalo con sudo
fuente
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:
El resultado debería ser algo como:
Para encontrar la versión, puede ejecutar:
El resultado debería ser algo como: Versión del servidor: Apache / 2.4.10 (Debian)
fuente
También puede usar el administrador de paquetes directamente:
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.
fuente
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
odpkg -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:
por ejemplo para Apache
que mostrará algo como (mira la
Installed
línea):fuente
Para mí esto funciona en Debian 6 (Squeeze):
Tuve que ir por el camino correcto:
fuente
Intenté ejecutar el comando "httpd -V" y "apachectl -V", pero no pude ejecutar y recibí el error:
Luego intenté de otra manera. Fui al directorio de Apache en mi servidor y luego intenté ejecutar el comando:
Esto funcionó para mí y devolvió el resultado:
Espero que esto ayude.
fuente
Puedes usar
apachectl -V
oapachectl -v
. ¡Ambos devolverán la información de la versión de Apache!Puede ser más como usar
apache2 -V
oapache2 -v
. ¡Parece más fácil de recordar!fuente
Para mí
apachectl -V
no funcionó, peroapachectl fullstatus
me dio mi versión.fuente
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 debinutils
) en el binario httpd y grep para una cadena que pueda parecerse a una versión. Por ejemplo, suponiendo que suhttpd
binario está en el directorio/foo/bar
: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).
fuente
httpd
necesario estar en el directorio actual para que esto funcione?O, menos directamente:
nmap -A localhost -p 80
fuente
-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:
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!)
fuente
fuente