2014-06-21 83 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前面使用@,但这并不能解决我的问题,只是忽略它。它也不会挂起,它简单地删除连接,就像我尝试访问服务器上的一个封闭端口一样。 –