Start · Sprachen · PHP · Referenz · apache_get_modules

apache_get_modules

Funktion

Gibt ein Array mit den Namen aller aktuell geladenen Apache-Module zurück.

seit PHP 4.3.2 Kategorie: misc

Signatur

apache_get_modules(): array

Beschreibung

apache_get_modules() liefert eine Liste aller Module, die der Apache-Webserver zum Zeitpunkt des Aufrufs geladen hat. Die Funktion ist ausschließlich verfügbar, wenn PHP als Apache-Modul (mod_php) betrieben wird – nicht unter CLI, FastCGI oder anderen SAPIs.

Typische Anwendungsfälle sind die Laufzeitprüfung, ob bestimmte Apache-Module wie mod_rewrite, mod_ssl oder mod_headers aktiv sind, bevor modulabhängige Funktionen oder Konfigurationen genutzt werden. So lassen sich Abhängigkeiten frühzeitig erkennen und aussagekräftige Fehlermeldungen ausgeben.

Das zurückgegebene Array enthält die internen Modulnamen in Kleinschreibung, z. B. mod_rewrite, mod_php oder core. Die Reihenfolge der Einträge entspricht der Ladereihenfolge der Module in der Apache-Konfiguration.

Rückgabewert

Typ
array
Beschreibung
Ein indiziertes Array mit den Namen aller geladenen Apache-Module als Strings, z. B. ['core', 'mod_so', 'mod_rewrite', ...].

Beispiele

Alle geladenen Apache-Module ausgeben

<?php
$modules = apache_get_modules();
echo '<ul>';
foreach ($modules as $module) {
    echo '<li>' . htmlspecialchars($module) . '</li>';
}
echo '</ul>';
<ul><li>core</li><li>mod_so</li><li>mod_rewrite</li>...</ul>

Prüfen ob mod_rewrite geladen ist

<?php
if (in_array('mod_rewrite', apache_get_modules())) {
    echo 'mod_rewrite ist aktiv – URL-Rewriting wird unterstützt.';
} else {
    echo 'Warnung: mod_rewrite ist nicht geladen. Einige URL-Weiterleitungen funktionieren nicht.';
}
mod_rewrite ist aktiv – URL-Rewriting wird unterstützt.

// Wichtig · Fallstricke

Achtung: Die Funktion steht nur zur Verfügung, wenn PHP als Apache-Modul (SAPI apache2handler) läuft. Unter CLI, PHP-FPM oder anderen SAPIs existiert sie nicht und führt zu einem fatalen Fehler, wenn sie aufgerufen wird. Vor dem Einsatz sollte daher geprüft werden, ob die Funktion überhaupt existiert:

if (function_exists('apache_get_modules')) { ... }

Die Funktion liefert ausschließlich statisch oder dynamisch in Apache geladene Module – PHP-Erweiterungen werden nicht aufgelistet. Für letztere ist get_loaded_extensions() zuständig.