PHP-Config richtig einstellen: Vollständiger Leitfaden für dein Hosting
- Technische Anleitungen
- Jason Carter
Die php-config bestimmt, wie deine Website auf dem Server arbeitet. Über die php.ini-Datei steuerst du Upload-Limits, Speichergrenzen und Sicherheitseinstellungen. Ohne dieses Wissen bleiben wichtige Optimierungen außer Reichweite.
Wir zeigen dir in diesem Leitfaden, wo du die php.ini findest, welche Direktiven wirklich zählen und wie du Änderungen sicher umsetzt. Du erfährst auch, welche Alternativen existieren, wenn dein Hosting-Anbieter direkten Zugriff einschränkt.
Was die php.ini-Datei ist und warum sie für dein Hosting wichtig ist
Die php.ini ist die zentrale Konfigurationsdatei für PHP auf deinem Webserver. Sie wird beim Start des Webservers eingelesen und legt fest, wie PHP arbeitet. Ohne diese Datei nutzt PHP Standardwerte, die für viele Websites nicht optimal sind.
Stell dir die php.ini als Kontrollzentrum vor: Hier regelst du, wie groß hochgeladene Dateien sein dürfen, wie viel Speicher PHP-Skripte nutzen können und wie lange sie maximal laufen. Nach der Installation findest du zwei Vorlagen: php.ini-development für Entwicklungsumgebungen und php.ini-recommended für Produktivserver.
Jede Anpassung wirkt sich direkt auf die Funktionalität deiner Website aus. Zu niedrige Limits führen zu Fehlermeldungen bei Datei-Uploads oder abgebrochenen Skripten.
Wo du die php.ini-Datei auf deinem Server findest
Der Speicherort der php.ini variiert je nach Betriebssystem und Hosting-Umgebung. Bei Shared Hosting hast du oft keinen direkten Zugriff auf die globale Datei.
Linux und Unix-Systeme
Auf einem Linux-Betriebssystem liegt die php.ini meist in /etc/php/ oder /usr/local/etc/php/. Der genaue Pfad hängt von deiner PHP-Version ab. Bei PHP 8.2 findest du die Datei beispielsweise unter /etc/php/8.2/apache2/php.ini für Apache oder /etc/php/8.2/fpm/php.ini für PHP-FPM.
Linux-Systeme unterstützen mehrere php.ini-Dateien über die Umgebungsvariable PHP_INI_SCAN_DIR. So kannst du zusätzliche Konfigurationsdateien in einem separaten Verzeichnis ablegen.
Windows-Server
Unter Windows nutzt PHP die Registry zur Lokalisierung der php.ini. Der Registrierungsschlüssel HKEY_LOCAL_MACHINESOFTWAREPHP enthält den Pfad zur Konfigurationsdatei. Typischerweise liegt sie in C:php oder im Windows-Verzeichnis.
php.ini per phpinfo-Funktion finden
Die sicherste Methode ist eine kleine PHP-Datei mit der phpinfo()-Funktion. Erstelle eine Datei namens info.php mit folgendem Inhalt: . Lade sie in dein Webverzeichnis hoch und rufe sie im Browser auf.
Die Ausgabe zeigt dir unter „Loaded Configuration File“ den exakten Pfad zur aktiven php.ini. Diese Methode funktioniert unabhängig vom Betriebssystem und zeigt dir auch zusätzlich geladene Konfigurationsdateien. Viele Hosting-Anbieter integrieren diese Funktion direkt in ihre Control Panels. Wenn du gleichzeitig die PHP-Version anzeigen lassen möchtest, liefert phpinfo() auch diese Information.
Wie die php.ini-Datei aufgebaut ist und funktioniert
Die Struktur der php.ini folgt klaren Regeln. Bevor du Änderungen vornimmst, solltest du verstehen, wie Direktiven aufgebaut sind und welche Berechtigungsebenen existieren.
Grundlegende Syntax
Jede Direktive folgt dem Schema „Direktive = Wert“. Ein Beispiel: upload_max_filesize = 128M legt die maximale Upload-Größe auf 128 Megabyte fest. Leerzeichen um das Gleichheitszeichen sind optional.
Werte können verschiedene Formate haben: Zahlen (max_execution_time = 300), Größenangaben mit Einheiten (memory_limit = 256M) oder boolesche Werte (display_errors = On).
Kommentare und Dokumentation
Zeilen, die mit einem Semikolon (;) beginnen, sind Kommentare. PHP ignoriert sie beim Einlesen. Nutze Kommentare, um deine Änderungen zu dokumentieren: ; Erhöht für große Theme-Uploads.
Konfigurationsebenen verstehen
Nicht alle Direktiven kannst du als Benutzer ändern. PHP unterscheidet zwischen verschiedenen Berechtigungsebenen. PHP_INI_SYSTEM-Direktiven darf nur der Server-Administrator in der globalen php.ini ändern. PHP_INI_PERDIR-Direktiven kannst du über .htaccess oder .user.ini anpassen.
| Ebene | Änderbar durch | Beispiel-Direktiven |
|---|---|---|
| PHP_INI_SYSTEM | Nur Administrator | max_execution_time, memory_limit |
| PHP_INI_PERDIR | Benutzer (.htaccess) | upload_max_filesize, post_max_size |
| PHP_INI_USER | Skript (ini_set) | display_errors, error_reporting |
Daher sind manche Einstellungen bei deinem Hosting-Anbieter gesperrt. Sie betreffen die Server-Stabilität und Sicherheit aller Kunden auf dem System.
Die wichtigsten php.ini-Direktiven für deine Website
Einige Direktiven beeinflussen deine Website täglich. Wir erklären dir, welche Einstellungen du kennen solltest.
Upload und Dateigrößen
Die Direktive upload_max_filesize legt fest, wie groß einzelne hochgeladene Dateien sein dürfen. Standardmäßig sind das oft nur 2M. Für Theme-Uploads oder Mediendateien ist das zu wenig. Wichtig: post_max_size muss größer sein als upload_max_filesize, da POST-Daten auch Formularfelder enthalten.
| Direktive | Standardwert | WordPress | E-Commerce |
|---|---|---|---|
| upload_max_filesize | 2M | 64M | 128M |
| post_max_size | 8M | 66M | 130M |
Speicher und Ausführungszeit
Die Direktive memory_limit bestimmt, wie viel Arbeitsspeicher deines Servers ein einzelnes PHP-Skript nutzen darf. Für WordPress empfehlen wir mindestens 256M, für Magento oder komplexe Shops eher 512M oder mehr.
Mit max_execution_time legst du fest, wie lange ein Skript maximal laufen darf. Der Standardwert von 30 Sekunden reicht für normale Seitenaufrufe. Backup-Plugins oder Importer brauchen oft 300 Sekunden oder mehr.
Fehlerberichterstattung
Auf Produktivservern solltest du display_errors = Off setzen. Fehlermeldungen verraten Angreifern sonst Details über deine Server-Struktur. Nutze stattdessen log_errors = On und error_log = /pfad/zu/error.log, um Fehler in eine Datei zu schreiben.
Die Direktive error_reporting steuert, welche Fehlertypen protokolliert werden. Für die Entwicklung nutzt du error_reporting = E_ALL, auf Live-Servern error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT.
Komprimierung und Performance
Mit zlib.output_compression = On komprimiert PHP die Ausgabe automatisch. Das reduziert die übertragene Datenmenge und beschleunigt deine Website. Die meisten modernen Browser unterstützen diese Komprimierung.
So änderst du php.ini-Einstellungen bei deinem Hosting-Anbieter
Die Methode zur Änderung hängt von deinem Hosting-Paket ab. Wir zeigen dir die verfügbaren Optionen.
Direkte Bearbeitung der php.ini
Bei VPS oder dedizierten Servern hast du vollen Zugriff auf die php.ini. Verbinde dich per SSH mit deinem Server und öffne die Datei mit einem Editor wie nano oder vim. Alternativ kannst du die Datei per FTP-Zugang herunterladen, lokal bearbeiten und wieder hochladen.
Nach jeder Änderung musst du den Webserver neu starten: sudo systemctl restart apache2 oder sudo systemctl restart php8.2-fpm. Erst dann werden die neuen Einstellungen aktiv.
Verwendung von user.ini-Dateien
Viele Hosting-Anbieter erlauben .user.ini-Dateien im Webverzeichnis. Diese überschreiben bestimmte php.ini-Einstellungen für das jeweilige Verzeichnis und alle Unterverzeichnisse. Erstelle eine Datei namens .user.ini mit folgendem Inhalt:
upload_max_filesize = 64M
post_max_size = 66M
memory_limit = 256M
Die Änderungen werden nach wenigen Minuten aktiv ohne Server-Neustart.
Änderungen über htaccess-Dateien
Auf Apache-Servern kannst du PHP-Direktiven in der .htaccess-Datei setzen. Nutze php_value für Werte mit Einheiten und php_flag für boolesche Werte:
php_value upload_max_filesize 64M
php_value post_max_size 66M
php_flag display_errors Off
Diese Methode funktioniert nur, wenn PHP als Apache-Modul läuft. Bei PHP-FPM oder nginx bleiben .htaccess-Direktiven wirkungslos.
Control Panel Interfaces nutzen
Die meisten Hosting-Anbieter bieten grafische Oberflächen zur PHP-Konfiguration. In cPanel findest du unter „Software“ den Punkt „Select PHP Version“ oder „MultiPHP INI Editor“. Plesk bietet unter „PHP-Einstellungen“ eine übersichtliche Liste aller wichtigen Direktiven. DirectAdmin zeigt die PHP-Einstellungen unter „Advanced Features“ → „PHP Settings“.
PHP-FPM Konfiguration für moderne Hosting-Umgebungen
Viele moderne Hosting-Anbieter setzen auf PHP-FPM statt traditioneller Apache-Module. Diese Technologie bietet bessere Performance und Ressourcen-Verwaltung.
Was PHP-FPM ist
PHP-FPM steht für FastCGI Process Manager. Anders als beim Apache-Modul läuft PHP als separater Prozess, der über die CGI-Schnittstelle mit dem Webserver kommuniziert. Das ermöglicht bessere Kontrolle über Ressourcen und höhere Stabilität.
Bei PHP-FPM kannst du PHP-Einstellungen ändern ohne den gesamten Webserver neu zu starten. Das ist besonders auf Shared Hosting Systemen vorteilhaft.
php-fpm.conf verstehen
Neben der php.ini nutzt PHP-FPM eine zusätzliche Konfigurationsdatei: php-fpm.conf. Hier definierst du Pools, also separate PHP-Prozess-Gruppen für verschiedene Websites oder Kunden. Jeder Pool kann eigene Ressourcen-Limits haben.
Performance-Optimierung mit PHP-FPM
Die wichtigsten FPM-Direktiven für Performance sind pm.max_children, pm.start_servers und pm.min_spare_servers. Die Direktive pm.max_children legt fest, wie viele PHP-Prozesse maximal gleichzeitig laufen dürfen.
| Direktive | 1 GB RAM | 4 GB RAM |
|---|---|---|
| pm.max_children | 10 | 40 |
| pm.start_servers | 2 | 8 |
Diese Werte hängen stark vom verfügbaren Arbeitsspeicher ab. Jeder PHP-FPM-Prozess benötigt etwa 50-100 MB RAM, je nach Anwendung.
php.ini-Änderungen testen und verifizieren
Nach jeder Änderung solltest du prüfen, ob sie wirksam wurde. Erstelle dazu eine info.php-Datei mit und rufe sie im Browser auf. Suche nach der geänderten Direktive in der Ausgabe.
Manche Änderungen erfordern einen Neustart des Webservers oder PHP-FPM. Bei Apache-Modul reicht sudo systemctl restart apache2, bei PHP-FPM nutzt du sudo systemctl restart php8.2-fpm. Ohne Neustart bleiben die alten Werte aktiv.
Wenn deine Änderung nicht funktioniert, prüfe folgende Punkte: Liegt die Datei im richtigen Verzeichnis? Hast du die Syntax korrekt geschrieben? Ist die Direktive überhaupt änderbar (PHP_INI_PERDIR oder PHP_INI_USER)? Läuft PHP als CLI oder Web-SAPI? Diese beiden Modi nutzen oft unterschiedliche php.ini-Dateien.
Sicherheitseinstellungen in der php.ini für dein Hosting
Falsch konfigurierte Sicherheitseinstellungen öffnen Angreifern Tür und Tor. Wir zeigen dir, welche Direktiven du anpassen solltest.
Gefährliche Funktionen deaktivieren
Die Direktive disable_functions erlaubt dir, potenziell gefährliche PHP-Funktionen zu sperren. Funktionen wie exec, shell_exec, system und passthru ermöglichen die Ausführung von System-Befehlen. Auf Produktivservern solltest du sie deaktivieren:
disable_functions = exec,shell_exec,system,passthru,popen,proc_open
Normale Websites brauchen diese Funktionen nicht. Angreifer nutzen sie gerne, um nach erfolgreicher Code-Injection Kontrolle über den Server zu erlangen.
Datei-Zugriff beschränken
Mit open_basedir schränkst du ein, auf welche Verzeichnisse PHP zugreifen darf. Setze diese Direktive auf dein Webverzeichnis: open_basedir = /var/www/deine-domain.de/. PHP kann dann keine Dateien außerhalb dieses Pfads lesen oder schreiben.
Die Direktiven allow_url_fopen und allow_url_include steuern, ob PHP entfernte Dateien öffnen darf. Setze allow_url_include = Off, da diese Funktion häufig für Remote-Code-Execution-Angriffe missbraucht wird. Ohne diese Einstellungen sind deine Websites anfällig für Malware-Angriffe.
| Direktive | Empfohlener Wert | Sicherheitsauswirkung |
|---|---|---|
| allow_url_include | Off | Verhindert Remote-Code-Execution |
| open_basedir | /var/www/domain/ | Begrenzt Dateizugriff |
Session-Sicherheit
Sessions speichern Benutzer-Informationen zwischen Seitenaufrufen. Die Direktive session.cookie_httponly = On verhindert, dass JavaScript auf Session-Cookies zugreift. Das schützt vor XSS-Angriffen. Mit session.cookie_secure = On werden Session-Cookies nur über HTTPS übertragen.
Unterschiede zwischen PHP-Versionen und ihre php.ini-Einstellungen
Beim Upgrade von PHP 7.4 auf PHP 8.x ändern sich verfügbare Direktiven. Manche Einstellungen werden deprecated, neue kommen hinzu. Prüfe vor einem Versions-Upgrade, welche Direktiven betroffen sind.
In PHP 8.0 wurden mehrere Direktiven entfernt: track_errors, magic_quotes_gpc und register_globals existieren nicht mehr. Neue Direktiven wie zend.exception_ignore_args = Off verbessern die Fehlerberichterstattung.
| Direktive | PHP 7.4 | PHP 8.0 |
|---|---|---|
| track_errors | Verfügbar | Entfernt |
| zend.exception_ignore_args | Nicht verfügbar | Neu |
Viele deutsche Hosting-Anbieter wie IONOS, Hetzner und ALL-INKL unterstützen mehrere PHP-Versionen parallel. Du kannst in deren Control Panels die gewünschte Version pro Domain auswählen.
Alternative Methoden zur PHP-Konfiguration ohne php.ini-Zugriff
Bei Shared Hosting fehlt oft der direkte php.ini-Zugriff. Wir zeigen dir Alternativen.
ini_set in PHP-Skripten
Die Funktion ini_set() ändert Direktiven zur Laufzeit innerhalb eines Skripts. Füge am Anfang deiner index.php folgende Zeilen ein:
ini_set(‚memory_limit‘, ‚256M‘);
ini_set(‚max_execution_time‘, ‚300‘);
Diese Methode funktioniert nur für Direktiven mit PHP_INI_ALL oder PHP_INI_USER. Direktiven wie upload_max_filesize lassen sich so nicht ändern, da sie beim Server-Start festgelegt werden.
htaccess-Dateien nutzen
Auf Apache-Servern kannst du PHP-Direktiven in .htaccess setzen. Diese Methode funktioniert nur, wenn PHP als Apache-Modul läuft:
php_value upload_max_filesize 64M
php_value post_max_size 66M
php_flag display_errors Off
user.ini für Verzeichnis-spezifische Einstellungen
Die .user.ini-Datei funktioniert ähnlich wie die globale php.ini, gilt nur für das Verzeichnis, in dem sie liegt, und alle Unterverzeichnisse. Das ist ideal für Multi-Site-Setups, bei denen jede Website eigene Anforderungen hat.
Typische Probleme und Fehler bei der php.ini-Konfiguration
Fehlerhafte Einstellungen legen deine Website lahm. Wir erklären dir die häufigsten Probleme.
Syntax-Fehler erkennen
Ein fehlendes Gleichheitszeichen oder ein Tippfehler im Direktiven-Namen führt dazu, dass PHP die Zeile ignoriert. Häufige Fehler: upload_max_filesize=64M (korrekt) vs. upload_max_filesize 64M (fehlendes Gleichheitszeichen).
Prüfe nach jeder Änderung die PHP-Fehlerprotokolle. Syntax-Fehler in der php.ini führen oft dazu, dass PHP mit Standardwerten startet.
Berechtigungsprobleme
Manche Direktiven lassen sich nur auf System-Ebene ändern. Wenn du versuchst, max_execution_time über ini_set() zu setzen, schlägt das fehl, weil diese Direktive zur Laufzeit oft gesperrt ist.
Cache-Probleme nach Änderungen
Du hast die php.ini geändert und die Website zeigt weiterhin die alten Werte? Opcode-Caching speichert kompilierte PHP-Dateien zwischen. Nach php.ini-Änderungen musst du diesen Cache leeren.
Bei OPcache hilft opcache_reset() in einem PHP-Skript oder ein Neustart von PHP-FPM. Ohne Cache-Leerung können Änderungen Stunden brauchen, bis sie wirksam werden.
Konflikte zwischen verschiedenen Konfigurationsdateien
PHP liest Einstellungen in dieser Reihenfolge: globale php.ini → .user.ini → .htaccess → ini_set(). Spätere Einstellungen überschreiben frühere. Wenn du memory_limit in der php.ini auf 512M setzt und eine .user.ini im Webverzeichnis 128M definiert, gilt 128M.
php.ini-Optimierung für verschiedene Website-Typen
Jedes CMS und Framework hat eigene Anforderungen. Wir zeigen dir maßgeschneiderte Konfigurationen.
WordPress-Hosting
WordPress braucht mindestens 256M memory_limit für reibungslosen Betrieb. Themes und Plugins erhöhen den Bedarf schnell. Setze upload_max_filesize auf 64M, damit du Themes und Plugins ohne Probleme hochladen kannst. Zu niedrige Werte führen zum White Screen of Death.
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 66M
max_execution_time = 300
max_input_vars = 3000
E-Commerce mit Magento oder WooCommerce
Online-Shops haben höhere Anforderungen als normale Websites. Magento empfiehlt mindestens 512M memory_limit, besser 1G oder mehr. Produktimporte mit tausenden Artikeln brauchen max_execution_time von 600 Sekunden oder länger.
| Direktive | WooCommerce | Magento 2 |
|---|---|---|
| memory_limit | 256M | 1G |
| max_execution_time | 300 | 600 |
Laravel und moderne PHP-Frameworks
Laravel nutzt Composer für Abhängigkeiten. Composer braucht oft mehr als die Standard-memory_limit von 128M. Setze mindestens 256M, besser 512M für große Projekte. Für optimale Performance aktiviere OPcache mit opcache.enable = 1 und opcache.memory_consumption = 128.
Deutsche Hosting-Anbieter und ihre php.ini-Verwaltung im Vergleich
Jeder Provider handhabt php.ini-Zugriff unterschiedlich. IONOS unterscheidet zwischen alten Verträgen bis 17.09.2025 und neueren. Bei alten Verträgen kannst du die php.ini direkt bearbeiten, bei neueren nur über das Control Panel. lima-city bietet drei Wege zur Änderung: direkten Zugriff auf php.ini bei Managed-Servern, .user.ini bei Webhosting und ein grafisches Interface im Kundenbereich.
Bei VPS-Hosting von Hetzner oder Netcup hast du vollen Root-Zugriff und kannst die php.ini nach Belieben anpassen. Shared Hosting Kunden müssen mit .user.ini oder Control Panel Optionen arbeiten.
| Anbieter | Direkter Zugriff | .user.ini | Control Panel |
|---|---|---|---|
| IONOS | Teilweise | Ja | Ja |
| lima-city | Bei Managed | Ja | Ja |
| Hetzner VPS | Ja | Ja | Nein |
Fazit: PHP-Config als Grundlage für optimales Hosting
Die php.ini-Konfiguration bestimmt, wie deine Website funktioniert. Upload-Limits, Speichergrenzen und Sicherheitseinstellungen beeinflussen Performance und Stabilität direkt. Beginne mit diesen drei Direktiven: memory_limit auf mindestens 256M, upload_max_filesize auf 64M und display_errors = Off auf Produktivservern.
Teste jede Änderung sofort mit phpinfo() und prüfe die Berechtigungsebene der Direktive. Bei Unsicherheit kontaktiere den Support deines Hosting-Anbieters. Achte bei der Wahl eines Anbieters auf Flexibilität bei PHP-Konfigurationen, besonders wenn du E-Commerce betreibst oder Performance-kritische Anwendungen hostest.
Brauchst du Hilfe bei der Wahl des richtigen Hostinganbieters?
- 100 % kostenlos und unverbindlich
- Persönliche Empfehlung
- Antwort innerhalb von 24 Stunden
Häufig gestellte Fragen
Wo finde ich die php.ini-Datei auf meinem Webhosting?
Erstelle eine Datei info.php mit dem Inhalt und lade sie in dein Webverzeichnis hoch. Die Ausgabe zeigt unter „Loaded Configuration File“ den exakten Pfad. Auf Linux-Systemen liegt die Datei meist unter /etc/php/, auf Windows in C:php.
Kann ich die php.ini bei Shared-Hosting ändern?
Bei Shared Hosting hast du meist keinen direkten Zugriff auf die globale php.ini. Nutze stattdessen .user.ini-Dateien im Webverzeichnis oder ändere Einstellungen über das Control Panel deines Anbieters. Manche Direktiven lassen sich auch per .htaccess oder ini_set() anpassen.
Warum funktionieren meine php.ini-Änderungen nicht?
Häufige Gründe: Du hast den Webserver oder PHP-FPM nicht neu gestartet. Die Direktive hat eine Berechtigungsebene, die Änderungen verbietet (PHP_INI_SYSTEM). Eine .user.ini oder .htaccess überschreibt deine Einstellung. OPcache speichert alte Werte zwischen. Prüfe mit phpinfo(), welche Werte tatsächlich aktiv sind.
Was ist der Unterschied zwischen php.ini und user.ini?
Die php.ini ist die globale Konfigurationsdatei für den gesamten Server. Die .user.ini gilt nur für das Verzeichnis, in dem sie liegt, und alle Unterverzeichnisse. Änderungen an .user.ini werden nach wenigen Minuten aktiv ohne Server-Neustart. Die globale php.ini erfordert meist einen Neustart von Apache oder PHP-FPM.
Welche php.ini-Einstellungen sind für WordPress am wichtigsten?
Setze memory_limit auf mindestens 256M, upload_max_filesize auf 64M und post_max_size auf 66M. Erhöhe max_execution_time auf 300 Sekunden für Backup-Plugins. Die Direktive max_input_vars sollte bei 3000 liegen, damit große Menüs und Formulare funktionieren.
Wie erhöhe ich das Upload-Limit für größere Dateien?
Ändere drei Direktiven: upload_max_filesize legt die maximale Dateigröße fest, post_max_size muss größer sein und max_file_uploads begrenzt die Anzahl. Beispiel: upload_max_filesize = 128M, post_max_size = 130M. Bei Shared Hosting nutze .user.ini oder das Control Panel. Nach der Änderung prüfe mit phpinfo(), ob die neuen Werte aktiv sind.
geschrieben von:
Jason Carter
Mein Name ist Jason Carter und ich konzentriere mich auf den technischen Bereich von Webhosting Vorteil. Mit über 10 Jahren Erfahrung in der IT-Branche bringe ich umfangreiche Kenntnisse und Expertise im Bereich Webhosting mit. Ich teste verschiedene Hosting-Anbieter, schreibe detaillierte Bewertungen und Vergleiche und arbeite kontinuierlich daran, die Website zu verbessern, damit Besucher die bestmögliche Erfahrung erhalten.
Auch interessant
Wir helfen dir, den besten Webhoster zu finden
Kostenlose beratung






