it-swarm.com.de

Version von Apache, die auf einem Debian-Rechner installiert ist

Wie kann ich überprüfen, welche Version von Apache auf einem Debian-Rechner installiert ist?

Gibt es einen Befehl dafür?

304
pindiwala

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

Wenn es bei Ihnen nicht funktioniert, führen Sie den Befehl mit Sudo aus.

406
Todd Gamblin

Dies funktioniert für mein Debian:

$ /usr/sbin/Apache2 -v
142
Elzo Valugi

Sie sollten Apache2ctl -v oder Apache2 -v für neuere Debian- oder Ubuntu-Distributionen verwenden.

Apache:/etc/Apache2# Apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built:   May 12 2011 11:58:18

oder Sie können Apache2 -V verwenden, um weitere Informationen zu erhalten.

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

Ich verwende Red Hat Linux und der folgende Befehl funktioniert:

httpd -V
25
Dinesh

Der Befehl hängt davon ab, wie Ihre Linux-Version den Apache-Server benannt hat.

Unter Debian und Mac OS:

apachectl -v

Unter Red Hat und Amazon EC2 Linux verwenden Sie:

httpd -v

Bei anderen Linux-Versionen versuchen Sie:

Apache2 -v

Sie können zwei verschiedene Flags verwenden:

-v # gives you the version number
-V # gives you the compile settings including version number.

Wenn Sie den Befehl wie user3786265 mit dem vollständigen Verzeichnis ausführen möchten, aber nicht wissen, wo sich Ihr Apache befindet, verwenden Sie den Befehl whereis:

whereis httpd
24
Keshav Dial

Probieren Sie es mit 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....
15
shiva

Ich denke, Sie müssen sicher sein, welche Art von Installation Sie haben, binär oder Quelle. So überprüfen Sie, welche Binärpakete installiert sind: Führen Sie mit Root-Rechten den folgenden Befehl aus:

dpkg -l |grep Apache2

das Ergebnis sollte ungefähr so ​​aussehen:

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)

So finden Sie die Version, die Sie ausführen können:

Apache2ctl -V |grep -i "Server version"

das Ergebnis sollte ungefähr so ​​aussehen: Serverversion: Apache/2.4.10 (Debian)

11

Sie können den Paketmanager auch direkt verwenden:

dpkg -l | grep Apache

Dies konzentriert sich nicht auf nur Versionsnummer, sondern führt eine breitere Suche durch, die Ihnen andere nützliche Informationen liefert, wie z. B. Modulversionen.

11
Balmipour

Für mich funktioniert das auf Debian 6 (Squeeze):

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

Ich musste auf den richtigen Weg gehen:

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

./apachectl: Zeile 71: ulimit: open files: Änderung nicht möglich limit: Operation nicht erlaubt
Serverversion: Apache/ 2.2.21 (Unix)
Server gebaut: Dec 17 2011 19:57:53

6
merlinuwe
  1. Sie können apachectl -V oder apachectl -v. Beide geben die Apache-Versionsinformationen zurück!

        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. Möglicherweise verwenden Sie eher Apache2 -V oder Apache2 -v. Es scheint leichter zu merken!

        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"
5
xgqfrms

Ich habe versucht, die Befehle "httpd -V" und "apachectl -V" auszuführen, konnte sie jedoch nicht ausführen und bekam den Fehler:

-ksh: php: nicht gefunden [Keine solche Datei oder Verzeichnis]

Dann habe ich einen anderen Weg versucht. Ich habe das Apache-Verzeichnis auf meinem Server aufgerufen und dann versucht, den Befehl auszuführen:

./apachectl -v

Das hat bei mir geklappt und die Ausgabe zurückgegeben:

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

Ich hoffe das hilft.

5
RDB

Eine andere Möglichkeit, um eine auf einem Debian-basierten System installierte Version eines Pakets (einschließlich Apache) zu überprüfen, ist:

apt-cache policy <package_name>

z.B. für Apache

apt-cache policy Apache2

das zeigt so etwas wie (schau in die Installed Zeile):

$ 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
Raptor

Einige Installationen von Apache sind fubar (denken Sie an Oracle, OHS) und verstehen das -V-Flag nicht. Sie können auch nicht direkt aufgerufen werden, ohne auf fehlende Bibliotheksfehler zu stoßen.

Am einfachsten ist es, den Befehl strings (Teil von binutils) in der httpd-Binärdatei und grep für eine Zeichenfolge zu verwenden, die möglicherweise einer Version ähnelt. Angenommen, Ihre httpd-Binärdatei befindet sich im Verzeichnis /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

Die meisten Binärdateien (nicht alle) enthalten ihre Version (zumindest ihre Hauptversion) als statische Zeichenfolgen. Dies ist meine Vorgehensweise, um Versionen zu erhalten (oder um zu bestätigen, welche Hilfebotschaft einer Binärdatei mit der tatsächlichen Realität auf dem Boden übereinstimmt).

3
luis.espinal

Für mich apachectl -V hat nicht funktioniert, aber apachectl fullstatus gab mir meine Version.

3
pindiwala

Oder weniger direkt:

nmap -A localhost -p 80

2
Chad

Sicherlich ist die Eingabe von/ usr/sbin/Apache2 -vin die Shell der beste und schnellste Weg. Übrigens gibt es hier eine andere Option, nur für den Fall, dass es auch PHP in Ihrer gibt Server und Sie sind daran interessiert, Apache-Version (und vieles mehr) in schnellen programmatischen Schritten zu sammeln.

Erstellen Sie einfach eine info.php - Datei in Ihrem Apache-Webstammordner (oder was auch immer Sie möchten) und schreiben Sie diese hinein:

<?php
    phpinfo();
?>

Gehen Sie jetzt zu yoursite.com/info.php (oder localhost/info.php für lokale Computer).

Sie finden Ihre Apache-Version im AbschnittPHP-Variablen. Hier ist ein Beispiel:

phpinfo () Beispiel-Dump-Seite

Beachten Sie auch, dass diese Schritte offensichtlich für jeden Webserver mit PHP -Integration gelten, sodass sie nicht auf Apache beschränkt sind und nach dem Erstellen dieser Seite während der Entwicklung nützlich sein können (vergessen Sie nur nicht, sie zu entfernen) auf Produktionsumgebungen !!)

2
Defrag
dlocate -s Apache2 | grep '^Version:'
1
agc