Birincisi, benim çözüm Apache Web Sunucusu için geçerlidir.
Ben çok çok büyük bir db karşı bir rapor için bir teslim indir komut dosyası olarak hareket etmek içindir bir senaryo üzerinde çalışıyorum, ve ben de bu sorunla karşılaştı. Php kullanarak değilim, ama bunun yerine benim senaryom heitml ;-) denilen bazı karanlık dilinde yazılmış
Istek zaman aşımı problemli benim gibi bu senaryoda meydana gelir:
[Wed Sep 19 20:29:01 2012] [warn] [client ::1] Timeout waiting for output from CGI script /var/www/cgi-bin/heitml
[Wed Sep 19 20:29:01 2012] [error] [client ::1] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed
Ve ben şu anda burada bu resmi aşımı yapılandırma uzantısı kullanıyor uyum sağlayabilen tek ciddi çözüm: mod_reqtimeout. Bu örneğin gibi zaman aşımı params ayarlanmasını sağlar:
Istek gövdesini almak için başlıkları ve 30 saniye dahil isteği almak için 10 saniye izin ver:
RequestReadTimeout header=10 body=30
En az 10 saniye istek gövdesini almak için izin. Müşteri veri gönderirse, (LimitRequestBody dolaylı verilen sınırın exept) zaman aşımı için herhangi bir üst limit ile alınan her 1000 bayt için 1 saniye zaman aşımı süresini artırın:
RequestReadTimeout body=10,MinRate=1000
En az 10 saniye başlıklar dahil isteğini almak için izin verin. Müşteri veri gönderirse, alınan her 500 byte için 1 saniye zaman aşımı süresini artırın. Ama başlıklar dahil istek için 30 saniye daha fazla izin vermez:
RequestReadTimeout header=10-30,MinRate=500
Genellikle, bir sunucu başlık ve yapılandırılmış vücut zaman aşımı hem de olmalıdır. Ortak bir yapılandırma http için kullanılan ve sanal konaklar https ise, zaman aşımı çok düşük ayarlanmış olmamalıdır:
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
Bana (- bu 2.2.15 ve sonraki tüm sürümleri dahil ediyor olsa da varsayılan olarak yüklü değil varsayarak) bir bu modülü kullanmak gerekmez Apache tarafından sunulan daha iyi bir çözüm var olup olmadığını öğrenmek için henüz duyuyorum.