2012-07-04 37 views
0

我們當前使用套接字打開並寫入http連接,要求我們不一定關心響應!跟蹤ping等通過fsockopen和fwrite進行的PHP HTTP請求在linux上無法正常工作

這對我們的舊服務器和我們的Windows開發環境,但不是在我們的新的Ubuntu服務器。

我們使用的代碼如下

 $aUrlParts = parse_url($sUrl); 

     $fp = fsockopen(
      $aUrlParts['host'], 
      isset($aUrlParts['port']) ? $aUrlParts['port'] : 80, 
      $errno, $errstr, 30 
     ); 

     $sHeader = "GET {$aUrlParts['path']}?{$aUrlParts["query"]} HTTP/1.1\r\n"; 
     $sHeader.= "Host: {$aUrlParts['host']}\r\n"; 
     $sHeader.= "Connection: Close\r\n\r\n"; 

     fwrite($fp, $sHeader); 
     fclose($fp); 

,如果我做的fwrite後讀我可以得到它的所有從服務器上運行,但這違背了做這樣的要求的點相比,只是冰壺的URL

我已經嘗試刷新套接字並將其設置爲非阻塞,但非工程!只是做一個後讀是唯一的作品!

任何幫助表示讚賞

編輯:我會提到這些新的服務器是AWS基礎,我有一種感覺,對他們的套接字實現可能會有所不同

+0

做接收服務器上的博客有什麼線索嗎? – BugFinder

+0

不幸的是,接收服務器都是第三方 – Tristan

+0

他們不給你訪問你的日誌?多數民衆贊成在沒有幫助,大部分。你能不能在內部設置一個測試服務器來檢查它的工作原理? – BugFinder

回答

0

我不知道,這是值得作爲回答,但我有完全相同的問題,這就是我來到這裏的方式。我唯一的區別是我試圖對服務器本身執行請求。

我的解決方案是在服務器的訪問管理。我有一個htaccess文件阻止任何人查看,除了我自己的網絡,並且它阻礙了我的服務器請求自己。

所以也許它與服務器訪問管理有關。讓我知道這是否有幫助。