Start · Sprachen · PHP · Referenz · apache_get_version

apache_get_version

Funktion

Gibt die Version des laufenden Apache-Webservers als Zeichenkette zurück.

seit PHP 4.3.2 Kategorie: misc

Signatur

apache_get_version(): string|false

Beschreibung

apache_get_version() liefert den Versions-String des Apache-HTTP-Servers, unter dem das PHP-Skript gerade ausgeführt wird. Der zurückgegebene String entspricht dem, was Apache intern als Serverbezeichnung führt, z. B. Apache/2.4.57 (Debian).

Die Funktion ist nützlich, wenn serverseitige Logik oder Debugging-Ausgaben die genaue Apache-Version berücksichtigen sollen – etwa um Feature-Verfügbarkeit zu prüfen oder Systeminfos in Diagnose-Skripten auszugeben.

Wichtig: Die Funktion steht nur zur Verfügung, wenn PHP als Apache-Modul (mod_php) betrieben wird. Bei Verwendung von PHP-FPM, CGI oder der CLI liefert sie false oder ist schlicht nicht verfügbar.

Da der zurückgegebene String detaillierte Versionsinformationen enthält, sollte er niemals ungeprüft an Endnutzer ausgegeben werden, um keine Angriffsfläche für versionsspezifische Exploits zu bieten.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den Apache-Versions-String zurück (z. B. Apache/2.4.57 (Debian)), oder false, wenn PHP nicht als Apache-Modul ausgeführt wird.

Beispiele

Apache-Version ausgeben

<?php
$version = apache_get_version();
if ($version !== false) {
    echo 'Laufender Webserver: ' . htmlspecialchars($version);
} else {
    echo 'Nicht unter Apache als Modul ausgeführt.';
}
Laufender Webserver: Apache/2.4.57 (Debian)

Apache-Hauptversion für Verzweigungslogik ermitteln

<?php
$version = apache_get_version();
if ($version !== false) {
    // Hauptversionsnummer extrahieren, z. B. "2" aus "Apache/2.4.57"
    if (preg_match('/Apache\/(\d+)\.(\d+)/', $version, $matches)) {
        $major = (int) $matches[1];
        $minor = (int) $matches[2];
        if ($major === 2 && $minor >= 4) {
            echo 'Apache 2.4 oder neuer – alle Features verfügbar.';
        } else {
            echo 'Ältere Apache-Version – eingeschränkter Funktionsumfang.';
        }
    }
} else {
    echo 'Funktion nicht verfügbar (kein Apache-Modul).';
}
Apache 2.4 oder neuer – alle Features verfügbar.

// Wichtig · Fallstricke

Verfügbarkeit: apache_get_version() ist ausschließlich im Apache-SAPI-Kontext (mod_php) verfügbar. Unter PHP-FPM, CLI oder anderen SAPIs ist die Funktion nicht definiert – ein Aufruf führt dort zu einem fatalen Fehler. Vor dem Aufruf sollte daher function_exists('apache_get_version') geprüft werden.

Sicherheit: Der Versions-String sollte nicht in öffentlichen Ausgaben erscheinen, da er Angreifern Informationen über die Serverumgebung liefern kann. Für interne Diagnose-Zwecke ist die Ausgabe durch htmlspecialchars() zu escapen.