Warnung: Wenn Sie Apache 2.4 unter Ubuntu 14 ausführen, apache2ctl -Vfunktioniert dies nicht ohne Root-Rechte (... und die Version wird nicht gedruckt). Während es unter Ubuntu 12 mit Apache 2.2 funktioniert. Tricky.
philippe_b
Es funktioniert unter Ubuntu 12.04 und ich glaube, dass viele Leute immer noch Ubuntu 12.04 verwenden, wie ich, die noch kein Upgrade auf 14 durchführen möchten, bis alle Fehler mit verschiedener Software vollständig beseitigt
sind.y
Funktioniert amDebian 7.1
Cyclonecode
apachectl -V funktioniert nicht mit suse10.04, stattdessen müssen wir / usr / sbin / apache2ctl -v eingeben, um die richtige Antwort mit Root-Erlaubnis zu erhalten
farzam
1
Funktionierte gut unter Red Hat Enterprise Linux 6 (64-Bit)
Entweder -V oder Kleinbuchstaben -v ist in Ordnung, aber Sie müssen möglicherweise sudo verwenden, es sei denn, Sie sind als root angemeldet.
Sdexp
27
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
Versuchen Sie auf anderen Linux-Versionen:
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 folgenden whereisBefehl:
Brillant. Ihre Antwort deckt den Bereich der Serverumgebungen ab, in denen möglicherweise versucht wird, die Apache-Version zu finden. Wenn es meine Frage wäre, hätte ich dies als Antwort markiert . Vielleicht ist das einzige, was ich vorschlagen würde, um Ihre Antwort zu ergänzen, die gemeinsamen Wege. In einigen Umgebungen befindet sich der Befehl möglicherweise nicht im $ PATH, sodass Personen, die diese Befehle ausprobieren, möglicherweise stecken bleiben. zB In meinem Debian-Umfeld musste ich verwenden, $ /usr/sbin/apache2 -vweil nur $ apache2 -vzurückkehrt command not found. Dieser Befehl hilft Benutzern, den Pfad zu Apache zu finden, falls erforderlich:ps -ef | grep apache
inspiriert
apache2 -vfunktioniert auch auf Debian (mindestens Debian 8 (Jessie) auf Raspberry Pi).
Peter Mortensen
25
Ich verwende Red Hat Linux und der folgende Befehl funktioniert:
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....
Dies wird nicht funktionieren, wenn es derzeit Syntaxfehler in Ihren Konfigurationsdateien gibt
Wolfgang Fahl
12
Ich denke, Sie müssen sicher sein, welche Art von Installation Sie Binär oder Quelle haben. So überprüfen Sie, welche Binärpakete installiert sind: Führen Sie mit Root-Rechten den folgenden Befehl aus:
dpkg -l |grep apache2
Ergebnis sollte so etwas sein wie:
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"
Ergebnis sollte ungefähr so aussehen: Serverversion: Apache / 2.4.10 (Debian)
Sie können den Paketmanager auch direkt verwenden:
dpkg -l | grep apache
Dies konzentriert sich nicht nur auf die Versionsnummer , sondern führt eine breitere Suche durch, die Ihnen andere nützliche Informationen wie Modulversionen liefert.
Die Beschränkung auf Apache kann direkt an dpkg übergeben werden. Für eine automatisierte Interpretation benötigen Sie anstelle einer Liste auch einen einzelnen Wert, und die "deinstallierten" apache2- * -Pakete sollten nicht angezeigt werden. Bitte beachten Sie auch dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-oder dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1.
Smoe
6
Eine andere Möglichkeit, eine auf einem Debian-basierten System installierte Paketversion (einschließlich Apache) zu überprüfen, können wir verwenden:
'apachectl -v' funktioniert für mich unter Mac, CentOS und Ubuntu. Auf welcher Distribution liefen Sie? apachectl fullstatus benötigt mod_status, damit dies funktioniert. Es ist also auch keine universelle Lösung.
Konzulic
apachectl fullstatushat bei mir nicht funktioniert. Ich habe /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.(Debian 8 - Raspbian auf einem Raspberry Pi). Hat apachectl -Vaber funktioniert.
Peter Mortensen
3
Einige Installationen von Apache sind fubar (denken Sie an Oracle's Packaging, OHS) und verstehen das -V-Flag nicht und können auch nicht direkt aufgerufen werden, ohne dass fehlende Bibliotheksfehler auftreten.
Am einfachsten ist es, den stringsBefehl (Teil von binutils) in der httpd-Binärdatei und grep für eine Zeichenfolge zu verwenden, die möglicherweise einer Version ähnelt. Angenommen, Ihre httpdBinärdatei befindet sich im Verzeichnis /foo/bar:
Die meisten Binärdateien (nicht alle) enthalten ihre Version (zumindest ihre Hauptversion) als statische Zeichenfolgen. Dies ist mein Weg, um Versionen zu erhalten (oder um zu bestätigen, welche Hilfemeldung einer Binärdatei mit der Realität vor Ort wirklich übereinstimmt).
Muss es nicht httpdim aktuellen Verzeichnis sein, damit dies funktioniert?
Peter Mortensen
1
Dies hat mir geholfen, meine vorherige Version auf meinem gemounteten alten Root aus der neuen Ubuntu-Installation herauszufinden. Erwähnenswert: "Strings" ist Teil des Pakets "binutils"
Zefiro
@ PeterMortensen, yep. Ich denke, mein Beispiel geht davon aus, dass sich httpd im aktuellen Verzeichnis befindet (und dass der Leser dies aus dem Beispiel ableiten und nach Bedarf anpassen würde). Ich bearbeite meine Antwort jetzt, um dies widerzuspiegeln .
Luis.espinal
@ Zefiro, danke für das Heads Up. Ich werde meine Antwort aktualisieren, um binutils zu erwähnen.
Wenn Apache so konfiguriert ist, dass HTTP-Headern keine Versionsinformationen hinzugefügt werden, werden Sie nichts finden.
Marki555
nmap darf nicht installiert werden (zB auf einem Raspberry Pi):-bash: nmap: command not found
Peter Mortensen
2
Sicherlich ist die Eingabe von / usr / sbin / apache2 -v in die Shell der beste und schnellste Weg. Übrigens, hier ist eine weitere Option, nur für den Fall, dass sich auch PHP auf Ihrem Server befindet und Sie daran interessiert sind, die Apache-Version (und vieles mehr) zu sammeln mehr Infos) in schnellen programmatischen Schritten.
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 sehen Ihre Apache-Version im Abschnitt PHP-Variablen . Hier ein Beispiel:
Beachten Sie außerdem, dass diese Schritte offensichtlich für jeden Webserver mit PHP-Integration gelten. Sie sind also nicht auf Apache beschränkt. Sobald diese Seite erstellt wurde, kann sie bei der Entwicklung hilfreich sein (vergessen Sie nur nicht, sie in Produktionsumgebungen zu entfernen !!).
Antworten:
Versuchen Sie es mit apachectl -V:
Wenn es bei Ihnen nicht funktioniert, führen Sie den Befehl mit aus
sudo
.quelle
apache2ctl -V
funktioniert dies nicht ohne Root-Rechte (... und die Version wird nicht gedruckt). Während es unter Ubuntu 12 mit Apache 2.2 funktioniert. Tricky.Debian 7.1
Das funktioniert bei meinem Debian:
quelle
Sie sollten apache2ctl -v oder apache2 -v für neuere Debian- oder Ubuntu-Distributionen verwenden.
oder Sie können apache2 -V verwenden , um weitere Informationen zu erhalten.
quelle
Der Befehl hängt davon ab, wie Ihre Linux-Version den Apache-Server benannt hat.
Unter Debian und Mac OS:
Unter Red Hat und Amazon EC2 Linux verwenden Sie:
Versuchen Sie auf anderen Linux-Versionen:
Sie können zwei verschiedene Flags verwenden:
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 folgenden
whereis
Befehl:quelle
$ /usr/sbin/apache2 -v
weil nur$ apache2 -v
zurückkehrtcommand not found
. Dieser Befehl hilft Benutzern, den Pfad zu Apache zu finden, falls erforderlich:ps -ef | grep apache
apache2 -v
funktioniert auch auf Debian (mindestens Debian 8 (Jessie) auf Raspberry Pi).Ich verwende Red Hat Linux und der folgende Befehl funktioniert:
quelle
Probieren Sie es mit Sudo
quelle
Ich denke, Sie müssen sicher sein, welche Art von Installation Sie Binär oder Quelle haben. So überprüfen Sie, welche Binärpakete installiert sind: Führen Sie mit Root-Rechten den folgenden Befehl aus:
Ergebnis sollte so etwas sein wie:
So finden Sie die Version, die Sie ausführen können:
Ergebnis sollte ungefähr so aussehen: Serverversion: Apache / 2.4.10 (Debian)
quelle
Sie können den Paketmanager auch direkt verwenden:
Dies konzentriert sich nicht nur auf die Versionsnummer , sondern führt eine breitere Suche durch, die Ihnen andere nützliche Informationen wie Modulversionen liefert.
quelle
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
oderdpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
.Eine andere Möglichkeit, eine auf einem Debian-basierten System installierte Paketversion (einschließlich Apache) zu überprüfen, können wir verwenden:
zB für Apache
was so etwas wie zeigt (siehe
Installed
Zeile):quelle
Für mich funktioniert das unter Debian 6 (Squeeze):
Ich musste den richtigen Weg gehen:
quelle
Ich habe versucht, die Befehle "httpd -V" und "apachectl -V" auszuführen, konnte sie jedoch nicht ausführen und erhielt den Fehler:
Dann habe ich es anders versucht. Ich ging in das Apache-Verzeichnis auf meinem Server und versuchte dann, den folgenden Befehl auszuführen:
Dies funktionierte für mich und gab die Ausgabe zurück:
Ich hoffe das hilft.
quelle
Sie können
apachectl -V
oder verwendenapachectl -v
. Beide geben die Apache-Versionsinformationen zurück!Möglicherweise verwenden Sie eher
apache2 -V
oderapache2 -v
. Es scheint leichter zu merken!quelle
Für mich
apachectl -V
hat das nicht funktioniert, aberapachectl fullstatus
mir meine Version gegeben.quelle
apachectl fullstatus
hat bei mir nicht funktioniert. Ich habe/usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian auf einem Raspberry Pi). Hatapachectl -V
aber funktioniert.Einige Installationen von Apache sind fubar (denken Sie an Oracle's Packaging, OHS) und verstehen das -V-Flag nicht und können auch nicht direkt aufgerufen werden, ohne dass fehlende Bibliotheksfehler auftreten.
Am einfachsten ist es, den
strings
Befehl (Teil vonbinutils
) in der httpd-Binärdatei und grep für eine Zeichenfolge zu verwenden, die möglicherweise einer Version ähnelt. Angenommen, Ihrehttpd
Binärdatei befindet sich im Verzeichnis/foo/bar
:Die meisten Binärdateien (nicht alle) enthalten ihre Version (zumindest ihre Hauptversion) als statische Zeichenfolgen. Dies ist mein Weg, um Versionen zu erhalten (oder um zu bestätigen, welche Hilfemeldung einer Binärdatei mit der Realität vor Ort wirklich übereinstimmt).
quelle
httpd
im aktuellen Verzeichnis sein, damit dies funktioniert?Oder weniger direkt:
nmap -A localhost -p 80
quelle
-bash: nmap: command not found
Sicherlich ist die Eingabe von / usr / sbin / apache2 -v in die Shell der beste und schnellste Weg. Übrigens, hier ist eine weitere Option, nur für den Fall, dass sich auch PHP auf Ihrem Server befindet und Sie daran interessiert sind, die Apache-Version (und vieles mehr) zu sammeln mehr Infos) in schnellen programmatischen Schritten.
Erstellen Sie einfach eine info.php- Datei in Ihrem Apache- Webstammordner (oder was auch immer Sie möchten ) und schreiben Sie diese hinein:
Gehen Sie jetzt zu yoursite.com/info.php (oder localhost / info.php für lokale Computer).
Sie sehen Ihre Apache-Version im Abschnitt PHP-Variablen . Hier ein Beispiel:
Beispiel-Dump-Seite für phpinfo ()
Beachten Sie außerdem, dass diese Schritte offensichtlich für jeden Webserver mit PHP-Integration gelten. Sie sind also nicht auf Apache beschränkt. Sobald diese Seite erstellt wurde, kann sie bei der Entwicklung hilfreich sein (vergessen Sie nur nicht, sie in Produktionsumgebungen zu entfernen !!).
quelle
quelle