之前有人问过这个问题,但没有给出真正的答案(据我所知)。
这是原始问题的链接: 使用 Authbind 在 Ubuntu 的端口 80 中从 Eclipse 启动 Tomcat。
- 我确实需要在端口 80 上运行 tomcat。
- 我宁愿不必在计算机上安装 tomcat。我相信这不是必需的。
- 我想避免使用端口转发(我现在必须这样做,因为我找不到其他解决方案)
我在用:
- Ubuntu 12.04
- 日蚀朱诺
- 雄猫 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 start”
但我总是得到同样的错误。
如果我以 root 身份启动 eclipse,它工作正常,所以我相信问题与端口 80 上的访问权限有关,而不是与要使用的端口有关。
我确实假设 eclipse 使用与启动 eclipse 相同的用户权限启动 tomcat。
有人可以提供一些支持吗?我可以使用端口转发来工作,但我真的很想知道我缺少什么以及如何正确地做到这一点。