Этот действительно меня озадачил. Я не сталкивался с этой проблемой на других серверах, над которыми работал.
Это на сервере Ubuntu 10.04.1 LTS с PHP 5.3.2-1ubuntu4.5.
Когда у меня есть PHP-скрипт, который не выводит больше 120 секунд, скрипт не будет показывать никаких последующих выводов; тем не менее, любой вывод не будет выполнен. Это происходит как для php5-cgi, так и для php5 (cli). Например:
1. $iSleep = 120;
2. echo 'Now: '.date('H:i:s')."\n";
3. echo 'Sleeping for: '.$iSleep."\n";
4. echo 'Will wake up at: '.date('H:i:s', (time()+$iSleep))."\n";
5. sleep($iSleep);
6. echo 'Woke up at: '.date('H:i:s')."\n";
7. mail('test@example.com', 'Subject', 'Message');
Я выведу весь вывод обратно на экран через строку 4. Строка 6 никогда не появится на экране, но я получу электронное письмо из строки 7. Если я изменю строку 1 на 119 или меньше, код будет выполнить полностью, как ожидалось. Пожалуйста, дайте мне знать, если вы хотите узнать какие-либо другие настройки (php.ini) или номера версий. Заранее спасибо за ваше время.