PHP fouten
Wanneer je applicatie draait, kan het zijn dat je PHP fouten opmerkt in de logs van je applicatie, of dat je ervoor wilt zorgen dat je PHP scripts niet oneindig blijven draaien door onvolledige of vastgelopen verzoeken. Dit artikel legt uit hoe je de juiste time-out instellingen en geheugenlimieten kunt configureren om de stabiliteit, veiligheid en optimale prestaties van je applicatie te garanderen.
Geheugenlimiet
De standaard PHP geheugenlimiet voor Applicatie Hosting is 128MB voor alle PHP versies. Als je applicatie deze limiet overschrijdt, kun je in de logs van je applicatie een fout zien die lijkt op de volgende:
1047468200 Bytes RAM detected
PHP memory limit is 128M Bytes
Om de geheugenlimiet van je applicatie te verhogen maak je een .user.ini bestand aan in de hoofdmap van de applicatie en voeg je de geheugenlimiet instelling toe aan het bestand. Als je bijvoorbeeld de geheugenlimiet van PHP wilt verhogen tot 256MB, voeg je het volgende toe:
memory_limit = 256M
Request terminate timeout verhogen
De directive request_terminate_timeout
voor FastCGI Process Manager (FPM) bepaalt de maximale tijd dat een PHP script kan draaien voordat de webserver het geforceerd beëindigt, ongeacht of het script is voltooid of niet.
Dit is handig om te voorkomen dat PHP scripts oneindig lang draaien, wat kan gebeuren door codeerfouten, oneindige loops of te lange verwerkingstijden. Door een geschikte request_terminate_timeout
in te stellen, kun je voorkomen dat PHP processen buitensporig veel systeemresources gebruiken en mogelijk de algehele prestaties en stabiliteit van de server beïnvloeden.
Om de waarde van request_terminate_timeout te wijzigen:
- Maak een bestand aan met de naam fpm_custom.conf in de hoofdmap van je repository en voeg de gewenste waarde toe, bijvoorbeeld (standaard eenheid is seconden):
request_terminate_timeout = 120
- Push de wijzigingen naar je Git repository.
- Selecteer in MyKinsta je applicatie > Processen > Webprocesbewerken > Start commando bewerkenom bijvoorbeeld het fpm_custom.conf bestand op te nemen:
heroku-php-apache2 -F fpm_custom.conf