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