2010-12-21 10 views
5

% 50'sini yürütür. Durum şu: PHP CLI kullanarak çalıştırdığım tek bir PHP betiğinde, hepsi HTTPS uzak bir ana bilgisayara verilen bir dizi cURL isteğim var. Bazen ben istekler başarıyla yürütmek, ama nedense çoğu zaman bunu çalıştırmak komut dosyasını çalıştırdığınızda ben cURL aşağıdaki hatayı alıyorum:cURL/PHP İsteği uzak SSL etkinleştirilmiş ana bilgisayara verilen cURL istekleri sadece% 50 ya da öylesine benim durumumda zaman başarılı olmasının nedeni, anlayamıyorum baştan arama yaptıktan sonra Zamanda

* About to connect() to www.virginia.edu port 443 (#0) 
* Trying 128.143.22.36... * connected 
* Connected to www.virginia.edu (128.143.22.36) port 443 (#0) 
* successfully set certificate verify locations: 
* CAfile: none 
    CApath: /etc/ssl/certs 
* error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac 
* Closing connection #0 

tekrar aynı sonucu elde birkaç kez çalışırsanız, ama sonra birkaç denemeden sonra istekler başarılı bir şekilde geçecek. Bundan sonra betiği çalıştırmak bir hatayla sonuçlanır ve desen devam eder. Hata 'uyarı kötü kayıt mac' hata araştırmak bana yararlı bir şey vermedi ve komut dosyası hala zaman zaman çalışır beri bir SSL sorunu üzerinde suçlamakta tereddüt.

Ben php5 ve Openssl ait php5-curl yüklü yanı sıra son sürümü ile, Ubuntu Sunucu 10,04 gidiyorum. CURL'ye özgü seçenekler açısından CURLOPT_SSL_VERIFYPEER false olarak ayarlandı ve hem CURLOPT_TIMEOUT hem de CURLOPT_CONNECTTIMEOUT 4 saniyeye ayarlandı. Bu problemi daha da açıklamak, Mac OS X dev makinesinde aynı durumun meydana gelmesi gerçeğidir - taleplerin yalnızca% 50'sini geçmesi gerekir.

+0

Google "Hata 140943FC" –

+0

isteyebilirsiniz inan bana yaptı. İşçiler tarafından üretilen bir hata olduğu için, çalışan iş parçacığı sürümüne göre prefork MPM'de Apache'de çalıştığımdan emin olmak için bile kontrol ettim (bu yüzden prefork'u zaten çalıştırmamışımdır). – mquinn

+2

Hatalı kayıt MAC, ağ arayüzünün MAC adresini ifade etmez. Bu, "İleti Kimlik Doğrulama Kodu" –

cevap

3

uzak ana bilgisayar belki gerçek benzersiz bir ev sahibi değildir. Belki de gelen talepleri alarak çeşitli sunucularla bir çeşit yük dengeleme çözümü. Hata mesajındaki 'mac error' olabileceğini düşünmeme sebep olan şey nedir? Bu, SSL negatif bağlantısı devam ederken uzak ana bilgisayar mac adresinin değiştiği anlamına gelebilir. Ve bu bazen bir sorun olmadığını açıklayabilir.

Ama belki değil :-) SSL sorunları bulmak oldukça zordur. Eğer, hatta apache kullanmadığınız apache MPM kullanılmaz cli modunda PHP çalıştırırsanız

Ben, İşçi MPM vs Prefork MPM üzerinde cevabınızı anlamıyorum. Uzun geçmek

CURLOPT_FORBID_REUSE

:

+0

iyi nokta ile ilgili bir soruna işaret ediyor, yük dengeli bir uzak ana bilgisayar benim durumumda anlamlı olur. Ben yanlış, geçerli olmayan, yanlış bir kıvrılma yanıtı elde edip oradan gidene kadar engellemeye karar verdim. Şimdilik en iyi var. – mquinn

+3

Ben MAC bir ağ MAC adresi ile ilgili bir şey olduğunu sanmıyorum. Bu Mesaj Kimlik Doğrulama Kodu anlamına gelir: http://en.wikipedia.org/wiki/Message_authentication_code ... Bu, "uzak ana bilgisayar adresi" değişiminin bu sorunla hiçbir ilgisi olmadığı ve tersi olduğu sonucuna götürür. –

+0

@Charles Oliver Nutter güzel yakalama, ancak bu hala ana bilgisayarlar (ssl cache?) Arasında paylaşılması gereken ve olmayan bir şeyle ilgili bir sorun olabilir. – regilero

1

bu seçeneği gerekebilir. Bir sonraki aktarım, yapıldığında bağlantıyı açıkça kapatmasını sağlamak için 1'e ayarlayın. Normalde, libcurl, tüm bağlantıları bir aktarımla gerçekleştirildiğinde, bunları tekrar kullanabilen bir sonraki adımda gerçekleşirse canlı tutar. Bu seçenek dikkatli ve sadece ne yaptığını anlıyorsanız kullanılmalıdır. Libcurl, daha sonra yeniden kullanmak için bağlantıyı açık tutması için 0'a ayarlayın (varsayılan davranış).

+0

Öneriniz için teşekkürler ama boşuna oldu. Daha önce CURLOPT_FRESH_CONNECT'i denedim, ancak bu işe yaramadı ve FORBID_REUSE aynı eski davranışla sonuçlandı. – mquinn

0

Denediniz mi? curl_setopt ($ handle, CURLOPT_SSLVERSION, 3);

İlgili konular