0

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

这是原始问题的链接: 使用 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。

有人可以提供一些支持吗?我可以使用端口转发来工作,但我真的很想知道我缺少什么以及如何正确地做到这一点。

4

4 回答 4

4

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

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

执行此命令sudo

于 2013-05-30T20:55:34.793 回答
0

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

于 2013-05-13T12:28:04.133 回答
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。我没有看到任何方法可以在 Eclipse 中做到这一点。

于 2018-11-28T22:22:07.057 回答
-1

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

于 2013-02-25T04:29:07.540 回答