Esse comportamento soa como bloqueio de sessão. A maneira padrão como as sessões PHP funcionam é bloquear a sessão (para evitar que dois processos gravem no objeto da sessão). Isso normalmente é bom para scripts PHP típicos de curta duração, mas pode mordê-lo quando você tem algo que é de longa duração.
Se seu aplicativo não estiver usando sessões, desative
session.auto_start
em php.ini ou .htaccess:http ://www.php.net/manual/en/session.configuration.php#ini.session.auto-start
(Se você não o vê lá, ou ele já está desativado, mas você está usando algum tipo de framework, o framework pode estar iniciando a sessão para você; se estiver, é mais simples ir para a próxima solução do que tentar lutar o quadro.) Se você estiver usando a sessão em algumas páginas, mas não neste processo de longa duração, a solução é fechar a sessão no início do seu script, com session_write_close() :
<?
set_time_limit(0);
require '../connect.php';
require '../includes/ses.php';
session_write_close();
$i = 1;
....
Novamente, o aviso do framework:se o framework está iniciando uma sessão para você, então coloque
session_write_close();
depois de incluir os arquivos do framework, não antes! (Você mencionou que era o caso em seus comentários, e é por isso que eu coloquei após as linhas de exigência.) Se o seu processo de longa duração precisar usar a sessão, mas somente leitura, o procedimento acima ainda funcionará. Consulte https://stackoverflow.com/a/14409902/841830 (Como essa resposta mostra, se você precisar gravar na sessão no final do processo de longa duração, isso também é possível.)
(P.S. Isso já foi respondido nos comentários, mas aceitei a oferta de Wrikken de postar como resposta. Sim, os rumores são verdadeiros:farei qualquer coisa por alguns representantes ...)