2009-11-27 11 views
5

kullanmak.PHP Curl POST Sorun Neden Olan PHP benim sunucunuza POST ile veri yüklemek çalışıyorum ama bazen cURL sadece tezgahları ve PHP süresiz% 100 CPU kullanımı neden olur% 100 CPU

Aşağıdaki kodu kullanıyorum.

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $URL); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt ($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'); 
curl_setopt($curl, CURLOPT_HEADER, true); 
$page = curl_exec($curl); 
curl_close($curl); 

Bu sorunun nedenini veya nasıl izlendiğini anlamanız harika olacaktır.

+1

Nerede asılı olduğuna emin misin? Örneğin, curl_exec'ten önce ve curl_exec'ten sonra bir şey yazdırabilir ve ikinci baskıyı hiç göremez misiniz? –

+1

Ne tür veriler POST'liyorsunuz? Veriyi alan senaryonun neleri var? Hangi sunucu duraklıyor, gönderen mi yoksa aldatıcı mı? –

+0

Bu kodu makinemde yaklaşık 15 kez çalıştırdım. $ Sayfa var, sadece iyi yankılandı. – MeLight

cevap

-3

PHP'nin en yeni sürümüne yükseltin, PHP 5.3.1. Sorun hala devam ederse ve sunucu Windows çalıştıran Eğer

, başka bir şey, * NIX ait particularily bir forma yükseltin: ... bir GNU/Linux dağıtımı, vb BSD, sunOS, bir tür

Sorun devam ederse ya da Windows sunucu [1] için iyi bir işletim sistemi olduğunu düşünüyorsanız, sorunu izleme ve hata raporu gönderme yönergeleri şu adreste verilmiştir: http://bugs.php.net/how-to-report.php

[1] Microsoft'un kendisi yeniden başlatılmalıdır her ay microsoft.com'un arkasındaki her makine.

+1

öldürene kadar orada kalıyor Rasgele bir CPU kullanım sorunu nedeniyle OS'nizi kesip atıyorsunuz çılgın fikir. PHP, birçok insanın doğrulayabileceği gibi, Windows üzerinde iyi çalışır. – jvenema

+0

Sorusunun cevabını içeren bir cevabı indirmek iyi bir karma değildir: P Pratikte yaptığım şey, "hata" nın nerede olabileceğini, nasıl düzeltileceğini ve/veya nasıl rapor edileceğini anlatmaktı – Flavius

+1

saçmalık. Windows benim bir sunucu işletim sistemi için benim ilk tercihim değil, ama herhangi bir sorun olmadan Windows üzerinde barındırılan sayısız mükemmel kaliteli PHP siteleri var.Tanımlanamayan bir hata nedeniyle bir * nix'e "yükseltmek" önerisi ise "daft." –

0

Belirli bir dosyayla ilgili olup olmadığını belirleyebilir misiniz? Belki kodlama veya yükleme uzunluğu ile ilgili bir şey var mı?

İlk düşüncem, en azından belirli bir dosya/dosya kümesinin soruna neden olup olmadığını belirleme; Yüklemeden önce dosya isimlerini (ve belki de içeriği) ve türlerini ve tamamladıktan sonra dosya adını yazınız. Bu şekilde, hangi dosyaların soruna neden olduğunu tam olarak bileceksiniz ve oradan devam edebilirsiniz.

1

gerçekten asılı ve% 100 CPU gerçekleştirir gerçek bukle "çağrı" ise, o zaman bu bukle hata olduğunu ve muhtemelen libcurl yükseltme düşünmelisiniz.

+0

PHP'yi yeniden derlemeden libcurl'i güncellemenin bir yolu var mı? Ben kurmak için Yum kullanıyorum kaynak derleme diğer her şey berbat olurdu. – DramaGirl

+0

Kıvrımlı 7.12.1 kullanıyorum. – DramaGirl

+0

7.12.1 gerçekten ANCIENT olduğundan, bunu gerçekten yükseltmelisiniz. Ve yeniden derlemeden yükseltme yapabilmelisiniz, ama bu tamamen farklı bir konu ... –

0

Belki de sorun, posta verileri olarak belirttiğiniz şeydir. CURL aramanızdan hemen önce var_dump($postdata) yapabilir ve çıkışı buraya gönderebilir misiniz? cURL, bir tahmin/serileştirme sorununa yakalanabilir veya posta verileriniz sadece geçersizdir (ve umarız bunu düzeltebiliriz!).