Apache geeft een time-out als je het php commando file_get_contents gebruikt om een bestand via localhost binnen te halen.

Als je het php commando file_get_contents gebruikt om de inhoud van een lokaal bestand te achterhalen, kan het script crashen omdat het de maximale executie tijd bereikt heeft. Het probleem is vaak dat apache de inhoud van een bestand probeert te achterhalen binnen een for of while lus. Bij te veel van dit soort aanroepen loopt apache vast. Het kan ook te maken hebben met het verkeerd instellen van de DNS.

Vaak heb je het commando file_get_contents binnen een for of while lus staan waardoor apache te vaak de inhoud van dit bestand probeert te achterhalen en Apache vastloopt en opnieuw opgestart dient te worden. Ga je programmeercode na of deze for of while lus echt nodig is.

Als dit niet het probleem is en je weet zeker dat er geen oneindige lus in je programmeer code zit, heeft het waarschijnlijk te maken met verkeerde instellingen van je DNS (domain name system). Als je in de URL van je script localhost vervangt door een domeinnaam of IP-adres zoals 127.0.0.1 en het script werkt dan moet je de DNS instellingen aanpassen. In Windows moet je de regel 127.0.0.1 localhost aan je C:/Windows/System32/drivers/etc/hosts bestand toevoegen. In Unix moet je het /etc/hosts bestand op dezelfde manier aanpassen.

Als je alleen maar wilt weten of een bestand ook daadwerkelijk bestaat of haar bestandsgrootte wilt checken, kan je informatie over het bestand beter via het filesysteem ophalen wat veel sneller is dan via de http (server verzoeken). Er zijn eenvoudige php commando's zoals file_exists en filesize die dit voor je kunnen doen.

Beoordeel dit item
 
 
 
 
 

Beoordeeld nog niet 

Wil je reageren?




Velden met een * zijn verplicht.

Bewaren