2012-11-26 28 views
0

我需要我的Grails應用程序http://myserver.com/app/才能在同一臺服務器上創建一個PHP腳本。我正在使用groovyx.net.http.HTTPBuilder發出請求,如果腳本位於另一臺服務器上,該請求將起作用。但是,如果我移動腳本http://myserver.com/php/script.php,我得到Grails無法向同一臺服務器上的PHP腳本發出HTTP請求?

java.net.ConnectException 
Message 
Connection refused 

腳本通常在一個網絡瀏覽器在http://myserver.com/php/script.php

工作,我怎樣才能獲得的Grails發出請求?

+1

聽起來好像它可能與如何設置Apache服務器。你可以從那個盒子的命令行上做一個CURL並讓這個電話工作嗎? –

+0

是的 - 就是這樣。連接也被終端拒絕。相同的PHP腳本從外部正常工作。 –

+0

它可能在使用apache建立,因爲你有兩個服務設置工作,我不知道是否有沒有發生負載平衡器或在這個盒子前面的其他東西。 –

回答

1

服務器拒絕來自&的使用公共URL的HTTP請求。如果使用服務器名稱'localhost'進行請求,則請求按預期工作。

0

您知道Grails在Java EE(通常爲Tomcat)Web服務器上運行,並且您正在移動的PHP文件可能正在Apache/Apache2 Web服務器上運行? (Tomcat也是由Apache製作的,所以這個名字很不幸)。

你不能將一個PHP文件從一臺服務器移動到另一臺服務器,並期望它工作。您必須在運行Grails的服務器上設置直接的C Apache,可能需要將其配置爲在不同的端口上運行(因爲如果Tomcat和Apache都在偵聽80,它們會發生衝突),安裝PHP模塊,以及設置你的PHP應用程序。

+0

我希望那是問題所在。 tomcat和PHP都在我的服務器上運行。我可以從本地運行的應用程序中訪問myserver上的PHP腳本,如果我在其他地方運行PHP,則我的服務器上的Grails應用程序可以使用我的HTTP請求。 –

+0

所以你有兩個網絡服務器設置...你是否嘗試連接http:// localhost:80/php/myscript.php?它可能有助於發佈您用來發出HTTP請求的代碼。 –

+0

我的同事設置了apache/php服務器,以便我的文件夾/映射到我的tomcat應用程序。有關我部署的grails應用程序的其他一切正常工作 - 晚上對舊服務器發出相同的HTTP請求。我正在使用服務器的完整公共URL,例如。 http://www.myserver.com/script.php,如果我使用'grails run-app'在本地運行grails應用程序,它可以正常工作。 –

相關問題