Start · Sprachen · PHP · Referenz · php_ini_loaded_file

php_ini_loaded_file

Funktion

Gibt den vollständigen Pfad zur aktuell geladenen <code>php.ini</code>-Konfigurationsdatei zurück.

seit PHP 5.2.4 Kategorie: misc

Signatur

php_ini_loaded_file(): string|false

Beschreibung

php_ini_loaded_file() ermittelt den absoluten Pfad zur php.ini-Datei, die PHP beim Start geladen hat. Dies ist nützlich, um schnell herauszufinden, welche Konfigurationsdatei tatsächlich aktiv ist – insbesondere in Umgebungen, in denen mehrere PHP-Versionen oder verschiedene SAPI-Modi (CLI, FPM, Apache-Modul) parallel betrieben werden.

Wird keine php.ini-Datei geladen (z. B. wenn PHP mit der Option -n gestartet wird oder keine Datei gefunden wurde), gibt die Funktion false zurück. In diesem Fall greift PHP ausschließlich auf die internen Standardwerte zurück.

Die Funktion ist besonders hilfreich bei Diagnose- und Debugging-Skripten sowie bei Installer-Skripten, die prüfen müssen, ob und wo eine php.ini vorhanden ist. Sie ersetzt die manuelle Auswertung von phpinfo() oder das Parsen der CLI-Ausgabe von php --ini.

Zu beachten ist, dass zusätzliche .ini-Dateien, die über das Verzeichnis scan_dir geladen werden, von dieser Funktion nicht berücksichtigt werden. Für diese kann php_ini_scanned_files() verwendet werden.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den vollständigen Pfad zur geladenen php.ini als string zurück, oder false, wenn keine php.ini-Datei geladen wurde.

Beispiele

Pfad der aktiven php.ini ausgeben

<?php
$iniPath = php_ini_loaded_file();

if ($iniPath !== false) {
    echo 'Geladene php.ini: ' . $iniPath . PHP_EOL;
} else {
    echo 'Keine php.ini geladen – PHP verwendet interne Standardwerte.' . PHP_EOL;
}
Geladene php.ini: /etc/php/8.2/cli/php.ini

Kombination mit php_ini_scanned_files()

<?php
// Hauptkonfiguration
$main = php_ini_loaded_file();
echo 'Haupt-INI: ' . ($main !== false ? $main : '(keine)') . PHP_EOL;

// Zusätzlich geladene INI-Dateien aus dem Scan-Verzeichnis
$scanned = php_ini_scanned_files();
if ($scanned !== false && $scanned !== '') {
    $files = array_map('trim', explode(',', $scanned));
    echo 'Zusätzliche INI-Dateien:' . PHP_EOL;
    foreach ($files as $file) {
        echo '  - ' . $file . PHP_EOL;
    }
} else {
    echo 'Keine zusätzlichen INI-Dateien gescannt.' . PHP_EOL;
}
Haupt-INI: /etc/php/8.2/cli/php.ini Zusätzliche INI-Dateien: - /etc/php/8.2/cli/conf.d/10-opcache.ini - /etc/php/8.2/cli/conf.d/20-curl.ini

// Wichtig · Fallstricke

Nur die Haupt-INI: php_ini_loaded_file() liefert ausschließlich den Pfad der primären php.ini. Weitere Konfigurationsdateien, die über das Scan-Verzeichnis eingebunden werden, sind über php_ini_scanned_files() abrufbar.

CLI-Option -n: Wird PHP mit php -n script.php gestartet, wird bewusst keine php.ini geladen, und die Funktion gibt false zurück. Deployment- und Test-Skripte sollten diesen Fall explizit behandeln.

SAPI-Unterschiede: Der zurückgegebene Pfad kann je nach verwendetem SAPI (z. B. CLI vs. PHP-FPM vs. Apache mod_php) unterschiedlich sein, da jede SAPI eine eigene php.ini verwenden kann.