Signatur
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
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.';
}
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).';
}
// 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.