2014-06-21 82 views
0

我在Debian服務器中有兩個應用程序在Apache下運行,一個在PHP中,另一個在Ruby on Rails中運行。 PHP頁面對正在運行的Ruby on Rails應用程序進行了大量調用,它會調用像http://localhost/example.json這樣的url上的file_get_contents。服務器丟棄本地連接

問題是,經過一段時間(通常有些日子),它會停止工作,每次我嘗試本地連接時,它都會被丟棄。如果我嘗試在另一個服務(如ssh)上連接到本地主機,它可以正常工作,並且如果我嘗試從服務器外部連接到我的Rails應用程序,它也可以正常工作。

爲了解決這個問題,我必須重新啓動服務器(有時不止一次)才能正常工作。在我看來,服務器以某種方式阻止自己,但在/ var/log/messages(這是iptables記錄的東西,對吧?)上沒有什麼奇怪的東西,對吧?

在此先感謝!

回答

0

每當我做的file_get_contents我爲void

$result = @file_get_contents 
if(! $result) { // error 

} 

這可以確保你的代碼不會在功能上掛起,如果(例如)的文件是不可達的運行它。

這就是說,我從來沒有鎖過我的服務器。它只能確保我的代碼的其餘部分按照它應該運行。可能是因爲某些數據需要你的服務器掛起。但結果不應該是這樣戲劇性的。

我希望這至少有一點幫助。我很好奇聽到你想出了什麼。

+0

是的,我在file_get_contents前面使用@,但這並不能解決我的問題,只是忽略它。它也不會掛起,它簡單地刪除連接,就像我嘗試訪問服務器上的一個封閉端口一樣。 –