Beklenmedik Bağlantı Sıfırlama: Bir PHP veya bir Apache sorunu?

6 Cevap apache

Ben aynı yerde, her zaman ve benim tarayıcı raporları durdurma tutan bir PHP komut dosyası var:

The connection to the server was reset while the page was loading.

Firefox ve IE bu test ettim, aynı şey olur. Yani, bu bir Apache / PHP yapılandırma sorun olduğunu tahmin ediyorum. İşte ben kurdunuz birkaç şey vardır.

Php.ini

max_execution_time = 300000 
max_input_time = 300000
memory_limit = 256M

Apache (httpd.conf)

Timeout 300000
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 0

Yukarıdaki doğru mudur? Bu neden olabilir ve ne ayarlayabilirsiniz?

I am running PHP (5.2.12.12) as a module on Apache (2.2) on a Windows Server 2003.

Bu tüm tarayıcılar aynı şeyi yapmak gibi bu bir Apache veya PHP konudur çok muhtemeldir. Ben komut exactly 10 dakika (600 saniye) için çalışır düşünüyorum.

6 Cevap

2 PHP biçimlendirimleri arasındaki farklar benim ucunda gerçekten sorunun kök nedeni vardı. Benim app NuSOAP kütüphane dayanmaktadır.

PHP'nin SOAP uzantısı kapalı olduğu PHP 5.2 ile yapılandırma 1, ince koşuyordu.

PHP'nin SOAP uzantısı olduğu gibi PHP 5.3 ile yapılandırma 2. yandan, "Connection Reset" hataları veriyordu.

Kapalı her şeyi yeniden yazmak zorunda kalmadan benim app PHP 5.3 üzerinde çalışan almak için izin uzantısı anahtarlama.

Ben benzer bir sorunu vardı - apache2 segfaulting edildi çıkıyor. Segfault nedeni Ubuntu 10.04 LTS 5.3.2-1ubuntu4.14 için php5-xdebug oldu. Çıkarma xdebug sorun giderilmiştir.

Ben hata raporlama tüm seçenekleri ayarı denemek istiyorum

-b on error batch abort
-V severitylevel
-m error_level

ve istemci tüm çıktı göndermeden

<?php
echo "<div>starting sql batch</div>\n<pre>"; flush();
passthru('sqlcmd -b -m -1 -V 11 -l 3 -E -S TYHSY-01 -d newtest201 -i "E:\PHP_N\M_Create_Log_SP.sql"');
echo '</pre>done.'; flush();

Benim PHP de bunun nedeni olarak herhangi bir ek bilgi olmadan segfaulting edildi. Ikisi yöntemi çağrılan yoktu çünkü two classes calling each other's magic __call() method olduğu ortaya çıktı. Belleğe çıkana kadar PHP sadece döngüler. Ama bu yöntemler, "sihirli" muhtemelen çünkü, mesaj zamanki "bitkin * bayt İzin bellek boyutu" rapor vermedi.

Ben de bugün bu sorun vardı, bir try...catch...finally bloğu ile bir işlevi bir sokak (herhangi bir anahtar veya herhangi bir döngü dışında) PHP kodu break; ifadesi, olduğu ortaya çıktı.

PHP, bu durumda çöküyor gibi görünüyor:

<?php

function a ()
{
    break;

    try
    {
    }
    catch (Exception $e)
    {
    }
    finally
    {
    }
}

Bu PHP sürümü 5.5.5 ile oldu.

Ben bazı durumlarda 5.4 + eAccelerator = bağlantı sıfırlama PHP bir sorunu vardı. Orada herhangi bir log dosyalarının hiçbir hata çıkışı oldu, ve sadece zor teşhis yapılan bazı URL'ler, üzerinde oldu. Yalnızca belirli bir PHP kodu / belirli bir PHP dosyaları için oldu, nedeniyle özel PHP kodu ve eAccelerator ile bazı uyumsuzluklar oldu çıkıyor. En kolay çözüm için aşağıdaki ekleyerek, belirli bir site için eaccelerator devre dışı bırakmak oldu. Htaccess dosyası

php_flag eaccelerator.enable 0

php_flag eaccelerator.optimizer 0

Php.ini (veya eşdeğer hat):

eaccelerator.enable = "0"

eaccelerator.optimizer = "0"