Come posso verificare quale versione di Apache è installata su una macchina Debian?
C'è un comando per farlo?
Come posso verificare quale versione di Apache è installata su una macchina Debian?
C'è un comando per farlo?
Risposte:
Prova 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 non funziona per te, esegui il comando con sudo
.
apache2ctl -V
non funziona senza i privilegi di root (... e non stampa la versione). Considerando che funziona su Ubuntu 12 con Apache 2.2. Difficile.
Debian 7.1
Questo funziona per il mio Debian:
$ /usr/sbin/apache2 -v
Si dovrebbe usare apache2ctl -v o apache2 -v per le nuove distribuzioni Debian o Ubuntu.
apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built: May 12 2011 11:58:18
oppure puoi usare apache2 -V per ottenere maggiori informazioni.
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....
Il comando varia a seconda di come la tua versione di Linux ha chiamato Apache Server.
Su Debian e Mac OS:
apachectl -v
Su Red Hat e Amazon EC2 Linux utilizzare:
httpd -v
Su altre versioni di Linux prova:
apache2 -v
Puoi usare due flag diversi:
-v # gives you the version number
-V # gives you the compile settings including version number.
Se vuoi eseguire il comando con la directory completa come ha fatto user3786265 ma non sai dove si trova il tuo apache, usa il whereis
comando:
whereis httpd
$ /usr/sbin/apache2 -v
perché $ apache2 -v
ritorna command not found
. Questo comando aiuterà gli utenti a individuare il percorso di apache, se necessario:ps -ef | grep apache
apache2 -v
funziona anche su Debian (almeno Debian 8 (Jessie) su Raspberry Pi).
Sto usando Red Hat Linux e il seguente comando funziona:
httpd -V
Provalo 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....
Penso che devi essere sicuro di quale tipo di installazione hai binario o sorgente. Per verificare quali pacchetti binari sono installati: con i diritti di root eseguire il comando seguente:
dpkg -l |grep apache2
il risultato dovrebbe essere qualcosa del tipo:
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)
Per trovare la versione è possibile eseguire:
apache2ctl -V |grep -i "Server version"
il risultato dovrebbe essere qualcosa del tipo: Versione server: Apache / 2.4.10 (Debian)
Puoi anche utilizzare direttamente il gestore pacchetti:
dpkg -l | grep apache
Questo non si concentra solo sul numero di versione , ma farà una ricerca più ampia, che ti darà altre informazioni utili, come le versioni del modulo.
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
.
Un altro modo per controllare una versione installata di un pacchetto (incluso Apache) sul sistema basato su Debian, possiamo usare:
apt-cache policy <package_name>
ad es. per Apache
apt-cache policy apache2
che mostrerà qualcosa di simile (guarda la Installed
linea):
$ 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
Per me funziona su Debian 6 (Squeeze):
Linux www809 2.6.26-2-xen-686 # 1 SMP mer 21 set 09:56:47 UTC 2011 i686 GNU / Linux
Ho dovuto andare sulla strada giusta:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: linea 71: ulimit: file aperti: impossibile modificare il limite: Operazione non consentita
Versione server: Apache / 2.2.21 (Unix)
Server costruito: 17 dic 2011 19:57:53
Ho provato a eseguire il comando "httpd -V" e "apachectl -V", ma non sono riuscito a eseguirlo e ho riscontrato l'errore:
-ksh: php: not found [Nessun file o directory simile]
Poi ho provato in un altro modo. Sono andato nella directory Apache sul mio server e ho provato a eseguire il comando:
./apachectl -v
Questo ha funzionato per me e ha restituito l'output:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
Spero che aiuti.
Puoi usare apachectl -V
o apachectl -v
. Entrambi restituiranno le informazioni sulla versione di 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"
Potresti essere più come usare apache2 -V
o apache2 -v
. Sembra più facile da ricordare!
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"
Per me apachectl -V
non ha funzionato, ma apachectl fullstatus
mi ha dato la mia versione.
apachectl fullstatus
Non ha funzionato per me. Ho ottenuto /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian su un Raspberry Pi). Tuttavia, apachectl -V
ha funzionato.
Alcune installazioni di Apache sono fubar (si pensi alla confezione di Oracle, OHS) e non comprendono il flag -V, né possono essere invocate direttamente senza incorrere in errori di libreria mancanti.
Il modo più semplice è usare il strings
comando (parte di binutils
) sul binario httpd e grep per una stringa che potrebbe assomigliare a una versione. Ad esempio, supponendo che il tuo httpd
binario sia nella directory /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 maggior parte dei binari (non tutti) contengono la loro versione (almeno la loro versione principale) come stringhe statiche. Questo è il mio modo per ottenere versioni (o per confermare ciò che un messaggio di aiuto di un binario corrisponde a ciò che la realtà sul campo è veramente.)
httpd
necessario trovarsi nella directory corrente affinché funzioni?
O, meno direttamente:
nmap -A localhost -p 80
-bash: nmap: command not found
Sicuramente digitare / usr / sbin / apache2 -v nella shell è il modo migliore e più veloce di procedere, tra l'altro ecco un'altra opzione, nel caso in cui ci sia anche PHP nel tuo server e sei interessato a raccogliere la versione di Apache (e molto più informazioni) in rapidi passaggi programmatici.
Basta creare un file info.php nella cartella principale Web di Apache (o qualunque cosa ti piaccia) e scrivere questi al suo interno:
<?php
phpinfo();
?>
Ora vai su yoursite.com/info.php (o localhost / info.php per macchine locali).
Vedrai la tua versione di Apache nella sezione Variabili PHP , ecco un esempio:
Pagina di dump di esempio phpinfo ()
Inoltre, tieni presente che questi passaggi ovviamente si applicano a qualsiasi server Web con integrazione PHP, quindi non si limita ad Apache e una volta creata quella pagina potrebbe essere utile durante lo sviluppo (non dimenticare di rimuoverla negli ambienti di produzione !!)