之前已经问过这个问题,但没有给出真正的答案(据我所知)。
以下是原始问题的链接: Start Tomcat from Eclipse in port 80 in Ubuntu with Authbind
我正在使用:
我可以作为非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的相同用户权限。
有人可以提供一些支持吗?我可以使用端口转发工作,但我真的想知道我错过了什么,以及如何做到这一点。
答案 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端口更改为您希望的任何四位数字并保存。 它会起作用。