Die Funktion
phpinfo() zeigt sämtliche Informationen über die aktuelle PHP-Installation an. Sie ist eines der wichtigsten Werkzeuge für die Fehlersuche und Serverkonfiguration. In diesem Tutorial erfährst du, wie du eine phpinfo-Datei erstellst, welche Informationen sie liefert und warum du sie nach dem Gebrauch unbedingt wieder entfernen solltest.

Zum Einstieg klären wir, was genau hinter der Funktion steckt und welche Informationen sie liefert.
Was ist phpinfo()?
Die Funktion phpinfo() gibt eine umfangreiche HTML-Seite aus, die alle Details zur PHP-Konfiguration des Servers enthält. Dazu gehören die installierte PHP-Version, geladene Erweiterungen, Einstellungen aus der php.ini, Informationen zum Betriebssystem und zum Webserver sowie Umgebungsvariablen. Entwickler nutzen sie vor allem, um zu prüfen, ob bestimmte Module aktiv sind oder ob Konfigurationsoptionen korrekt gesetzt wurden.
Eine phpinfo-Datei erstellen
Um phpinfo() zu nutzen, erstellst du eine neue PHP-Datei auf deinem Server. Öffne dazu einen Texteditor und speichere folgenden Inhalt als phpinfo.php:
<?php
phpinfo();
?>
Lade die Datei anschließend in das Hauptverzeichnis deines Webservers hoch. Achte darauf, dass die Datei die Endung .php hat, damit der Server sie als PHP-Datei erkennt und ausführt.
phpinfo() im Browser aufrufen
Nach dem Hochladen rufst du die Datei im Browser über die URL deines Servers auf, zum Beispiel https://deine-domain.de/phpinfo.php. Der Browser zeigt daraufhin eine mehrseitige Übersicht mit allen Konfigurationsdetails in tabellarischer Form an.
Wenn statt der PHP-Ausgabe der Quellcode der Datei angezeigt wird, ist PHP auf dem Server nicht korrekt installiert oder die Datei liegt nicht im richtigen Verzeichnis.
Welche Informationen liefert phpinfo()?
Die Ausgabe von phpinfo() ist in mehrere Abschnitte unterteilt, die jeweils unterschiedliche Aspekte der PHP-Umgebung abdecken.
PHP-Version und Module
Ganz oben steht die installierte PHP-Version. Darunter folgt eine Liste aller geladenen Module und Erweiterungen. So lässt sich schnell prüfen, ob beispielsweise die Erweiterungen pdo_mysql, mbstring oder gd verfügbar sind.
Konfigurationsoptionen (php.ini)
Dieser Abschnitt zeigt die aktuellen Werte aller php.ini-Einstellungen an, darunter memory_limit, upload_max_filesize, max_execution_time und error_reporting. Für jede Einstellung werden sowohl der lokale als auch der globale Wert (Master Value) angezeigt. Außerdem verrät die Ausgabe, wo die aktive php.ini-Datei auf dem Server liegt.
Server- und Umgebungsvariablen
Im unteren Bereich finden sich Umgebungsvariablen des Servers, HTTP-Header und Informationen zum verwendeten SAPI (Server API). Diese Daten sind vor allem für die Analyse von Serverproblemen hilfreich.
Sicherheitsrisiken und Schutzmassnahmen
So nützlich phpinfo() für die Fehlersuche ist, so gefährlich kann sie auf einem öffentlich zugänglichen Server sein.
Warum phpinfo() ein Sicherheitsrisiko ist
Die Ausgabe enthält sensible Informationen, die ein potenzieller Angreifer nutzen könnte: PHP-Version und bekannte Schwachstellen, Pfade zu Konfigurationsdateien, geladene Module, Datenbankverbindungen und Umgebungsvariablen. Mit diesen Informationen lassen sich gezielte Angriffe vorbereiten.
Datei nach Gebrauch löschen
Die wichtigste Regel lautet: Lösche die phpinfo.php sofort nach der Analyse vom Server. Sie sollte niemals dauerhaft auf einem Produktivserver verbleiben.
Zugriff per .htaccess einschränken
Falls du die Datei vorübergehend auf dem Server belassen musst, kannst du den Zugriff per .htaccess auf bestimmte IP-Adressen beschränken oder einen Passwortschutz einrichten.
phpinfo() mit eingeschränktem Ausgabebereich
Wenn du nicht die vollständige Ausgabe benötigst, kannst du phpinfo() mit Konstanten aufrufen, um nur bestimmte Abschnitte anzuzeigen.
<?php
/* Nur allgemeine Informationen anzeigen */
phpinfo(INFO_GENERAL);
/* Nur die Konfiguration anzeigen */
phpinfo(INFO_CONFIGURATION);
/* Mehrere Bereiche kombinieren */
phpinfo(INFO_GENERAL | INFO_MODULES);
Alternativ lassen sich einzelne Informationen auch programmatisch abfragen, ohne die gesamte HTML-Ausgabe zu erzeugen.
<?php
echo 'PHP-Version: ' . phpversion();
echo 'Betriebssystem: ' . PHP_OS;
echo 'SAPI: ' . php_sapi_name();
phpinfo() über die Kommandozeile nutzen
Auf Servern ohne Browserzugang lässt sich die PHP-Konfiguration auch über die Kommandozeile (CLI) abfragen. Der Befehl php -i liefert die gleiche Ausgabe wie phpinfo(), allerdings als reinen Text ohne HTML-Formatierung. Besonders praktisch ist die Kombination mit grep, um gezielt nach bestimmten Einstellungen zu suchen.
<?php
/* Diese Befehle im Terminal ausführen (nicht in PHP):
php -i
php -i | grep memory_limit
php -i | grep upload_max_filesize
php -i | grep error_reporting
*/
/* PHP-Version und SAPI per CLI abfragen */
echo php_sapi_name(); /* z.B. "cli", "fpm-fcgi", "apache2handler" */
Der Befehl php -i | grep memory_limit zeigt zum Beispiel sofort den aktuellen Wert des Speicherlimits an. Das spart den Umweg über eine phpinfo-Datei im Browser.
Die aktive php.ini finden
PHP kann je nach SAPI (Server API) unterschiedliche Konfigurationsdateien verwenden. Der Befehl php --ini zeigt, welche php.ini geladen wird und ob zusätzliche Konfigurationsdateien aus einem Scan-Verzeichnis eingelesen werden.
<?php
/* Im Terminal ausführen:
php --ini
Typische Ausgabe:
Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File: /etc/php/8.3/cli/php.ini
Scan for additional .ini files in: /etc/php/8.3/cli/conf.d
*/
/* Innerhalb eines PHP-Skripts den Pfad ermitteln */
echo php_ini_loaded_file();
echo php_ini_scanned_files();
Wichtig dabei: Apache, PHP-FPM und CLI verwenden häufig verschiedene php.ini-Dateien. Auf einem typischen Linux-Server liegt die CLI-Konfiguration unter /etc/php/8.x/cli/php.ini, die FPM-Konfiguration unter /etc/php/8.x/fpm/php.ini und die Apache-Konfiguration unter /etc/php/8.x/apache2/php.ini. Änderungen in der falschen Datei haben daher keine Wirkung auf den jeweiligen Kontext.
flowchart TD
A[PHP-Konfiguration pruefen] --> B{Zugang vorhanden?}
B -->|Browser| C[phpinfo.php erstellen]
C --> D[Im Browser aufrufen]
D --> E[Konfiguration pruefen]
E --> F[Datei sofort loeschen]
B -->|Terminal| G["php -i | grep Einstellung"]
G --> H[Ergebnis direkt lesen]
B -->|php.ini suchen| I[php --ini ausfuehren]
I --> J[Pfad zur aktiven php.ini]
style F fill:#f96,stroke:#333
Fazit
Die Funktion phpinfo() ist ein unverzichtbares Werkzeug, um die PHP-Konfiguration eines Servers schnell zu überprüfen. Sie zeigt PHP-Version, geladene Module, php.ini-Einstellungen und Serverinformationen auf einen Blick. Auf der Kommandozeile bieten php -i und php --ini dieselben Informationen ohne Sicherheitsrisiko. Beachte, dass Apache, FPM und CLI jeweils eigene php.ini-Dateien verwenden können. Die phpinfo-Datei sollte niemals dauerhaft auf einem öffentlich erreichbaren Server liegen.