2012-10-04 44 views
0

此問題之前已被問過,但沒有給出真正的答案(據我所知)。從端口80(Linux)的Eclipse中啓動Tomcat

這裏是原來的問題的鏈接: Start Tomcat from Eclipse in port 80 in Ubuntu with Authbind

  • 我需要80端口上。我不想不必在計算機上安裝Tomcat
  • 託倫tomcat的。我相信這不是必需的。
  • 我想避免使用端口轉發(我必須這樣做,因爲現在我發現沒有其他解決辦法)

我使用:

  • 的Ubuntu 12.04
  • 的Eclipse朱諾
  • Tomcat 7
  • OpenJDK 64位服務 - java版本「1.7.0_07」

我能夠以非root用戶的身份在端口80啓動tomcat,而無需安裝tomcat。

我按照這篇文章: http://java.dzone.com/articles/running-tomcat-port-80-user 有很多的話題的文章,但我發現這篇文章是簡單的完成。

當我嘗試使用eclipse啓動tomcat時,它總是失敗,並抱怨端口80被使用。但事實並非如此。事實上,雖然eclipse正在運行,而錯誤已經顯示在屏幕上,但我可以在端口80上手動啓動tomcat。

我注意到eclipse抱怨80端口被使用時它沒有該端口的訪問權限。在我無法在端口80上手動運行tomcat之前,我確實得到了相同的錯誤。不同的是,當我手動運行tomcat時,它確實記錄了訪問權限錯誤,並且eclipse抱怨端口的使用情況。

我已經修改了Eclipse的Tomcat啓動,包括選項「-Djava.net.preferIPv4Stack = true」,並啓動tomcat爲「authbind --deep啓動」

但我總是得到同樣的錯誤。

如果我以root身份啓動eclipse,它可以正常工作,所以我確實認爲問題與端口80上的訪問權限有關,而不是端口被使用。

我的確假設eclipse啓動tomcat時使用的啓動eclipse的用戶權限相同。

有人能提供一些支持嗎?我可以使用端口轉發工作,但我真的很想知道我缺少什麼以及如何正確執行。

回答

4

最簡單的方法是在端口8080,轉發端口80向監聽器啓動Tomcat爲localhost:8080:

ssh -L 80:localhost:8080 <user>@localhost 

執行與sudo

+1

我知道這樣可以避免這個問題,但實際上並不會對它進行排序。這是一個很好的方式,實際上我曾用過一段時間。感謝您的回覆 – fdm

+0

您無法連接到本地主機上的ssh-> ssh:連接到主機localhost端口22:連接被拒絕 – sytolk

+0

這是因爲您需要在本地機器上安裝ssh服務器。 –

-1

我現在也在學習像u這樣的eclipse。即使我面臨着和你一樣的問題。然後,我改變了端口號,然後服務器正在啓動。 要更改端口號,您需要在服務器上雙擊Apache Tomcat。然後點擊端口並將HTTP/1.1端口更改爲任意四位數字,然後保存。 它會工作。

+0

我試試這個方法這個命令,但還是會抱怨說該端口已被使用。 – fdm

0

我在Linux下運行一些使用端口1-1024的東西,進程必須具有root權限。