mac - check apache web server version




Versione di Apache installata su una macchina Debian (12)

Come posso verificare quale versione di Apache è installata su una macchina Debian?

C'è un comando per farlo?


  1. È possibile utilizzare 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"

  2. Potrebbe 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"


Alcune installazioni di Apache sono fubar (si pensi al pacchetto Oracle di esso, OHS) e non si capisca il flag -V, né si può invocare direttamente senza eseguire errori di libreria mancanti.

Il modo più semplice è usare il comando strings (parte di binutils ) su httpd binary e grep per una stringa che potrebbe assomigliare a una versione. Ad esempio, supponendo che il tuo binario httpd sia in 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) contiene la loro versione (almeno la loro versione principale) come stringhe statiche. Questo è il mio modo migliore per ottenere le versioni (o per confermare ciò che il messaggio di aiuto di un binario corrisponde a quello che è realmente la realtà sul campo).


Ho provato a eseguire il comando "httpd-V" e "apachectl -V", ma non ho potuto eseguire e stava ottenendo l'errore:

-ksh: php: non trovato [Nessun file o directory simile]

Poi ho provato un altro modo. Sono andato alla directory Apache sul mio server e poi ho provato ad 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.


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 usa:

httpd -v

Su altre versioni di Linux prova:

apache2 -v

Puoi utilizzare 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 user3786265 ma non sai dove si trova il tuo apache, usa il comando whereis :

whereis httpd

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 seguente comando:

dpkg -l |grep apache2

il risultato dovrebbe essere qualcosa come:

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 che è possibile eseguire:

apache2ctl -V |grep -i "Server version"

il risultato dovrebbe essere qualcosa come: Versione server: Apache / 2.4.10 (Debian)


Per me apachectl -V non ha funzionato, ma apachectl fullstatus mi ha dato la mia versione.


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 .


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....

Questo funziona per il mio Debian:

$ /usr/sbin/apache2 -v

Sicuramente digitare / usr / sbin / apache2 -v nella shell è il modo migliore e più veloce per andare, tra l'altro ecco un'altra opzione, nel caso ci sia anche PHP nel tuo server e sei interessato a raccogliere la versione di Apache (e molto altro più informazioni) in rapidi passaggi programmatici.

Basta creare un file info.php nella cartella radice Web di Apache (o qualsiasi altra cosa tu voglia) e scriverli al suo interno:

<?php
    phpinfo();
?>

Ora vai su yoursite.com/info.php (o localhost / info.php per le macchine locali).

Vedrai la tua versione di Apache nella sezione Variabili PHP , ecco un esempio:

phpinfo () esempio di pagina di dumping

Inoltre, si noti che questi passaggi si applicano ovviamente a qualsiasi server Web con integrazione con PHP, quindi non è limitato ad Apache e una volta creata tale pagina potrebbe essere utile durante lo sviluppo (non dimenticare di rimuoverlo negli ambienti di produzione !!)


Un altro modo per controllare una versione installata di un pacchetto (inclusa Apache) su un sistema basato su Debian, possiamo usare:

apt-cache policy <package_name>

ad esempio per Apache

apt-cache policy apache2

che mostrerà qualcosa di simile (guarda la riga 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

dlocate -s apache2 | grep '^Version:'




version