PHP-Fehler
Wenn deine Anwendung läuft, bemerkst du vielleicht PHP-Fehler in deinen Anwendungsprotokollen oder du möchtest sicherstellen, dass deine PHP-Skripte nicht unendlich lange laufen, weil die Anfragen unvollständig sind oder ins Stocken geraten. In diesem Artikel wird erklärt, wie du geeignete Timeout-Einstellungen und Speicherlimits konfigurierst, um die Stabilität, Sicherheit und optimale Leistung deiner Anwendung zu gewährleisten.
Speicherlimit
Das Standard-PHP-Speicherlimit bei Anwendungs-Hosting beträgt 128 MB für alle PHP-Versionen. Wenn deine Anwendung dieses Limit überschreitet, kann es sein, dass du in deinen Anwendungsprotokollen eine Fehlermeldung wie die folgende siehst:
Detected 1047468200 Bytes of RAM
PHP memory_limit ist 128M Bytes
Um das Speicherlimit für deine Anwendung zu erhöhen, erstelle eine .user.ini-Datei im Stammverzeichnis der Anwendung und füge die Einstellung für das Speicherlimit zu dieser Datei hinzu. Wenn du zum Beispiel das PHP-Speicherlimit auf 256 MB erhöhen möchtest, füge Folgendes hinzu:
memory_limit = 256M
Zeitüberschreitung beim Beenden von Anfragen erhöhen
Die Direktive request_terminate_timeout
für den FastCGI Process Manager (FPM) legt die maximale Zeit fest, die ein PHP-Skript laufen kann, bevor es vom Webserver zwangsweise beendet wird, unabhängig davon, ob das Skript abgeschlossen wurde oder nicht.
Dies ist nützlich, um zu verhindern, dass PHP-Skripte unendlich lange laufen, was aufgrund von Programmierfehlern, Endlosschleifen oder zu langen Verarbeitungszeiten passieren kann. Durch die Einstellung von request_terminate_timeout
kannst du verhindern, dass PHP-Prozesse übermäßig viele Serverressourcen verbrauchen und die Gesamtleistung und Stabilität des Servers beeinträchtigen.
So änderst du den Wert von request_terminate_timeout:
- Erstelle eine Datei mit dem Namen fpm_custom.conf im Hauptverzeichnis deines Repositorys und füge darin den gewünschten Wert ein, z. B. (Standardeinheit ist Sekunden):
request_terminate_timeout = 120
- Pushe die Änderungen in dein Git-Repository.
- Wähle in MyKinsta deine Anwendung > Prozesse > bearbeite den Webprozess > aktualisiere den Start-Befehl um z. B. die Datei fpm_custom.conf einzubinden:
heroku-php-apache2 -F fpm_custom.conf