从端口80(Linux)中的Eclipse启动Tomcat

时间:2012-10-04 08:15:25

标签: linux eclipse tomcat ubuntu port80

之前已经问过这个问题,但没有给出真正的答案(据我所知)。

以下是原始问题的链接: Start Tomcat from Eclipse in port 80 in Ubuntu with Authbind

  • 我确实需要在端口80上使用torun tomcat。
  • 我不想在计算机上安装tomcat。我认为这不是必需的。
  • 我想避免使用端口转发(我现在必须这样做,因为我找不到其他解决方案)

我正在使用:

  • Ubuntu 12.04
  • Eclipse Juno
  • Tomcat 7
  • OpenJDK 64-Bit Serve - 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 start”

但我总是得到同样的错误。

如果我以root身份启动eclipse,它可以正常工作,所以我确实认为问题与端口80的访问权限有关,而不是端口被使用。

我确实假设eclipse启动tomcat,具有用于启动eclipse的相同用户权限。

有人可以提供一些支持吗?我可以使用端口转发工作,但我真的想知道我错过了什么,以及如何做到这一点。

4 个答案:

答案 0 :(得分:4)

最简单的方法是在端口8080上使用侦听器启动tomcat,并将端口80转发到localhost:8080:

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

使用sudo

执行此命令

答案 1 :(得分:0)

我想在Linux下运行使用端口1-1024的东西,进程必须具有root权限。

答案 2 :(得分:0)

我不确定是否可以为任何人提供帮助,但是我解决了如下所述的类似问题:我使用startup.sh脚本启动了tomcat,它在端口80上运行良好。我重启了机器(以防万一)并尝试从eclipse启动相同的tomcat,但是当我收到有关使用端口80的错误时。

结果是eclipse不会从tomcat安装中获取启动脚本,因此它不使用authbind配置。我想到的最好的解决方案是使用authbind开始eclipse:

    authbind --deep ./STS

关于为什么它不起作用:

  

我已经修改了eclipse tomcat启动器,使其包含选项“ -Djava.net.preferIPv4Stack = true”,并将tomcat启动为“ authbind --deep start”

据我了解,您尝试将“ authbind --deep start”作为参数传递给tomcat。我相信authbind的重点是使用tomcat作为参数启动应用程序authbind。我看不到有什么办法可以在日食中完成。

答案 3 :(得分:-1)

我现在也像你一样学习日食。即使我遇到了和你一样的问题。然后,我更改了端口号,然后服务器正在启动。 要更改端口号,您需要在服务器上双击Apache Tomcat。然后单击端口并将HTTP / 1.1端口更改为您希望的任何四位数字并保存。 它会起作用。