Почему браузер выдает ошибку при работе с долгим скриптом?
Кроме таймаута в PHP попробуйте так:set_time_limit (30); //Таймаут 30 секунд по-умолчанию, увеличьте до нужного
ob_implicit_flush(true); //Мгновенный сброс буфера
И посылайте время от времени пробелы, чтобы браузер видел, что что-то грузится.
По-умолчанию выполнение скрипта 30 секунд
Попробуйте:set_time_limit (60*3); // 3 мин