Dit gedrag klinkt als sessievergrendeling. De standaard manier waarop PHP-sessies werken, is om de sessie te vergrendelen (om te voorkomen dat twee processen naar het sessieobject schrijven). Dit is normaal gesproken prima voor typische PHP-scripts met een korte levensduur, maar kan je bijten als je iets hebt dat lang duurt.
Als uw toepassing helemaal geen sessies gebruikt, moet u session.auto_start
uitschakelen in php.ini of .htaccess:http ://www.php.net/manual/en/session.configuration.php#ini.session.auto-start
(Als je het daar niet ziet, of het is al uitgeschakeld, maar je gebruikt een soort raamwerk, kan het raamwerk de sessie voor je starten; als dat zo is, is het eenvoudiger om naar de volgende oplossing te gaan dan te proberen te vechten het raamwerk.)
Als je de sessie op sommige pagina's gebruikt, maar niet in dit langlopende proces, is de oplossing om de sessie aan het begin van je script te sluiten met session_write_close() :
<?
set_time_limit(0);
require '../connect.php';
require '../includes/ses.php';
session_write_close();
$i = 1;
....
Nogmaals, de framework-waarschuwing:als het framework een sessie voor je start, plaats dan session_write_close();
na het opnemen van de framework-bestanden, niet eerder! (U zei dat dit het geval was in uw opmerkingen, daarom heb ik het na de vereiste regels geplaatst.)
Als uw langlopende proces de sessie moet gebruiken, maar alleen-lezen, werkt het bovenstaande nog steeds. Zie https://stackoverflow.com/a/14409902/841830 (Zoals dat antwoord laat zien, is dat ook mogelijk als u aan het einde van het langlopende proces naar de sessie moet schrijven.)
(P.S. Dit werd al beantwoord in de reacties, maar ik ben op zijn aanbod ingegaan om het als antwoord te posten. Ja, de geruchten zijn waar:ik doe alles voor een paar rep...)