PHP ini tunen: memory_limit, opcache und max_execution_time

Die PHP-Konfiguration über die php.ini Datei ist entscheidend für Performance, Stabilität und Sicherheit von Webanwendungen. Parameter wie memory_limit, opcache und max_execution_time bestimmen, wie viel Arbeitsspeicher PHP-Skripte nutzen dürfen, wie effizient der Bytecode zwischengespeichert wird und wie lange Skripte laufen dürfen. In diesem Leitfaden lernen Einsteiger, IT-Studierende und Junior Network Engineers praxisnah, wie diese Parameter angepasst und optimiert werden.

php.ini finden und bearbeiten

Die PHP-Konfigurationsdatei variiert je nach System und PHP-Version. Unter Linux finden Sie sie meist hier:

  • CLI: /etc/php/7.4/cli/php.ini
  • FPM: /etc/php/7.4/fpm/php.ini
  • Apache: /etc/php/7.4/apache2/php.ini
sudo nano /etc/php/7.4/fpm/php.ini

memory_limit anpassen

Der Parameter memory_limit legt fest, wie viel RAM ein PHP-Skript maximal verwenden darf. Zu niedrig kann zu Out of Memory-Fehlern führen, zu hoch belastet den Server unnötig.

Empfohlene Werte

  • kleine Webanwendungen: 128M
  • mittelgroße Anwendungen / CMS: 256M–512M
  • Rechenintensive Skripte: 1G oder mehr
memory_limit = 256M

max_execution_time einstellen

Mit max_execution_time wird die maximale Laufzeit eines Skriptes in Sekunden festgelegt. Dies schützt vor hängenden oder fehlerhaften Skripten, die den Server blockieren.

Empfohlene Werte

  • Standard-Webseiten: 30 Sekunden
  • Import/Export Skripte: 120–300 Sekunden
  • CLI-Skripte: ggf. unbegrenzt (0)
max_execution_time = 60

Opcache aktivieren und konfigurieren

PHP-OpCache beschleunigt die Ausführung, indem Bytecode kompiliert und zwischengespeichert wird. Dies reduziert die CPU-Last und verbessert die Reaktionszeit.

Wichtige Opcache-Parameter

  • opcache.enable=1 – Opcache aktivieren
  • opcache.memory_consumption=128 – Speicher in MB für Opcache
  • opcache.interned_strings_buffer=8 – Speicher für internierte Strings
  • opcache.max_accelerated_files=10000 – Maximale Anzahl gecachter Skripte
  • opcache.revalidate_freq=2 – Prüffrequenz für Skriptänderungen in Sekunden
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.validate_timestamps=1

PHP-FPM neu starten

Nach Änderungen in php.ini müssen die PHP-FPM-Dienste neu geladen werden:

sudo systemctl restart php7.4-fpm
sudo systemctl status php7.4-fpm

Apache oder Nginx neu laden

Damit Webanfragen die geänderten PHP-Einstellungen nutzen:

sudo systemctl reload apache2   # für Apache
sudo systemctl reload nginx       # für Nginx

PHP-Einstellungen überprüfen

Eine schnelle Möglichkeit, die aktiven Werte zu prüfen:

php -i | grep memory_limit
php -i | grep max_execution_time
php -i | grep opcache

Oder über Browser mit phpinfo():

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

Netzwerk- und Serveraspekte

Bei Anwendungen mit hohen Speicher- oder Ausführungsanforderungen sollte die Serverressourcenplanung stimmen. Subnetzplanung unterstützt IP-basierte Zugriffskontrolle und Monitoring.

IPv4 Subnetz

<math>
Server-IP = 192.168.150.50/24
Subnetzadresse = 192.168.150.50 & 255.255.255.0 = 192.168.150.0
Broadcastadresse = 192.168.150.0 | ~255.255.255.0 = 192.168.150.255
</math>

IPv6 Subnetz

<math>
Server-IP = 2001:db8:abcd:150::50/64
Subnetzadresse = 2001:db8:abcd:150:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:150::0
Broadcastadresse = 2001:db8:abcd:150:ffff:ffff:ffff:ffff
</math>

Best Practices

  • Memory-Limit an Anwendung und Serverressourcen anpassen
  • max_execution_time so wählen, dass Skripte nicht unnötig blockieren
  • Opcache aktivieren für alle produktiven Anwendungen
  • Opcache-Speicher und Anzahl der Dateien an Projektgröße anpassen
  • Änderungen in php.ini immer testen, z. B. über phpinfo()
  • Für unterschiedliche Projekte ggf. separate PHP-FPM Pools nutzen
  • CLI- und Web-PHP-Versionen separat prüfen
  • Regelmäßige Updates der PHP-Versionen und Module
  • Überwachung von RAM- und CPU-Auslastung
  • Backups der Konfigurationsdateien erstellen

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles