Como posso verificar qual versão do Apache está instalada em uma máquina Debian?
Existe um comando para fazer isso?
Como posso verificar qual versão do Apache está instalada em uma máquina Debian?
Existe um comando para fazer isso?
Respostas:
Tente 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 ...
Se não funcionar, execute o comando com sudo
.
apache2ctl -V
não funciona sem privilégios de root (... e não imprime a versão). Considerando que funciona no Ubuntu 12 com Apache 2.2. Complicado.
Debian 7.1
Isso funciona para o meu Debian:
$ /usr/sbin/apache2 -v
Você deve usar apache2ctl -v ou apache2 -v para novas distribuições Debian ou Ubuntu.
apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built: May 12 2011 11:58:18
ou você pode usar o apache2 -V para obter mais informações.
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....
O comando varia dependendo de como sua versão do Linux nomeou o Apache Server.
No Debian e Mac OS:
apachectl -v
No Red Hat e no EC2 Linux da Amazon, use:
httpd -v
Em outras versões do Linux, tente:
apache2 -v
Você pode usar dois sinalizadores diferentes:
-v # gives you the version number
-V # gives you the compile settings including version number.
Se você deseja executar o comando com o diretório completo, como o user3786265, mas não sabe onde está localizado o seu apache, use o whereis
comando:
whereis httpd
$ /usr/sbin/apache2 -v
porque apenas $ apache2 -v
retorna command not found
. Este comando irá ajudar os usuários a localizar caminho para apache, se necessário:ps -ef | grep apache
apache2 -v
também trabalha no Debian (pelo menos Debian 8 (Jessie) no Raspberry Pi).
Estou usando o Red Hat Linux e o seguinte comando funciona:
httpd -V
Experimente com 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....
Eu acho que você precisa ter certeza de que tipo de instalação você possui, binário ou fonte. Para verificar quais pacotes binários estão instalados: com direitos de root, execute o seguinte comando:
dpkg -l |grep apache2
O resultado deve 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 a versão, você pode executar:
apache2ctl -V |grep -i "Server version"
O resultado deve ser algo como: Versão do servidor: Apache / 2.4.10 (Debian)
Você também pode usar o gerenciador de pacotes diretamente:
dpkg -l | grep apache
Isso não está focado apenas no número da versão , mas fará uma pesquisa mais ampla, que fornecerá outras informações úteis, como as versões dos módulos.
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
.
Outra maneira de verificar uma versão instalada do pacote (incluindo o Apache) no sistema baseado em Debian, podemos usar:
apt-cache policy <package_name>
por exemplo, para Apache
apt-cache policy apache2
que mostrará algo como (veja a Installed
linha):
$ 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 mim, isso funciona no Debian 6 (Squeeze):
Linux www809 2.6.26-2-xen-686 # 1 SMP Wed Sep 21 09:56:47 UTC 2011 i686 GNU / Linux
Eu tive que ir no caminho certo:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: linha 71: ulimit: arquivos abertos: não é possível modificar o limite: Operação não permitida
Versão do servidor: Apache / 2.2.21 (Unix)
Servidor criado: 17 de dezembro de 2011 19:57:53
Tentei executar o comando "httpd -V" e "apachectl -V", mas não consegui executar e estava recebendo o erro:
-ksh: php: não encontrado [Esse arquivo ou diretório não existe]
Então eu tentei de outra maneira. Eu fui ao diretório Apache no meu servidor e tentei executar o comando:
./apachectl -v
Isso funcionou para mim e retornou a saída:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
Eu espero que isso ajude.
Você pode usar apachectl -V
ou apachectl -v
. Ambos retornarão as informações da versão do 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"
Você pode gostar mais de usar apache2 -V
ou apache2 -v
. Parece mais fácil lembrar!
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 mim apachectl -V
não funcionou, mas apachectl fullstatus
me deu a minha versão.
apachectl fullstatus
não funcionou para mim. Eu peguei /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian em um Raspberry Pi). No entanto, apachectl -V
funcionou.
Algumas instalações do Apache são fubar (pense no empacotamento da Oracle, OHS) e não entendem o sinalizador -V, nem podem ser chamadas diretamente sem ocorrer erros de biblioteca ausentes.
A maneira mais fácil é usar o strings
comando (parte de binutils
) no binário httpd e grep para uma string que possa se parecer com uma versão. Por exemplo, supondo que seu httpd
binário esteja no diretório /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
A maioria dos binários (nem todos) contém sua versão (pelo menos a versão principal) como seqüências estáticas. Este é o meu caminho para obter versões (ou corroborar o que a mensagem de ajuda de um binário corresponde ao que realmente é a realidade no terreno).
httpd
necessário estar no diretório atual para que isso funcione?
Ou, menos diretamente:
nmap -A localhost -p 80
-bash: nmap: command not found
Certamente digitar / usr / sbin / apache2 -v no shell é o melhor e mais rápido caminho, a propósito, aqui está outra opção, caso haja PHP também no seu servidor e você esteja interessado em coletar a versão do Apache (e muito mais mais informações) em etapas programáticas rápidas.
Basta criar um arquivo info.php na sua pasta raiz do Apache (ou o que você quiser) e escrever dentro dela:
<?php
phpinfo();
?>
Agora vá para yoursite.com/info.php (ou localhost / info.php para máquinas locais).
Você verá sua versão do Apache na seção Variáveis do PHP , aqui está um exemplo:
página de despejo de exemplo phpinfo ()
Além disso, observe que essas etapas obviamente se aplicam a qualquer servidor Web com integração ao PHP, portanto não se limita ao Apache e, uma vez criada, essa página pode ser útil durante o desenvolvimento (apenas não se esqueça de removê-la nos ambientes de produção !!)