无法在 Linux 服务器上启动或停止 Tomcat

Unable to start or Stop Tomcat on Linux Server

我无法在 Linux 上启动或停止 Tomcat。由于服务器是新的,我们第一次 运行 连接它,shutdown.sh 在下面抛出异常,尽管我已经放置了 log4j.properties:

/tomcat/V6.0/bin$ ./shutdown.sh
After calling setenv.sh: Using JAVA_HOME:       
After calling setenv.sh: Using JRE_HOME:       /usr/java/jdk1.8.0_91/jre
After cygwin: Using JAVA_HOME:       
After cygwin: Using JRE_HOME:       /usr/java/jdk1.8.0_91/jre
log4j:WARN No appenders could be found for logger (org.apache.tomcat.util.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.

但是当我 运行 startup.sh 它在控制台上没有显示任何内容说 tomcat 已启动。仅打印了以下行。

/tomcat/V6.0/bin$ ./startup.sh
After calling setenv.sh: Using JAVA_HOME:       
After calling setenv.sh: Using JRE_HOME:       /usr/java/jdk1.8.0_91/jre
After cygwin: Using JAVA_HOME:       
After cygwin: Using JRE_HOME:       /usr/java/jdk1.8.0_91/jre

当我尝试启动 tomcat 时使用 localhost,它抛出 404 错误 请问有人可以帮我解决这个问题吗?

我真的会建议升级 tomcat,如果它是强制性的,那么有人必须承担实施的风险,话虽如此,让我们列出如何正确验证 tomcat。

  1. 回顾一下你真正需要的tomcat6个版本,这就是list of tomcat 6 releases, if you are force to use tomcat 6.x then try to use the latest release in this case I would recommend v.6.0.53
  2. 将 tomcat 解压缩到您的磁盘中
  3. 确保您授予 bin 文件夹中的 .sh 脚本的执行权限。例如,如果您位于 tomcat apache-tomcat-6.0.53/bin$> 的 bin 文件夹中,那么您可以 运行 chmod +x ./*.sh
  4. 确保 JAVA_HOME 已设置
  5. 在您的 bin 文件夹中 运行 像这样的 startup.sh 脚本 ./startup.sh
  6. 检查 tomcat 是否为 运行 此命令 ps -ef | grep tomcat 它将列出与 tomcat.[=62= 相关的 运行ning 进程]
  7. 尝试停止 tomcat,在您的 bin 文件夹中 运行 关闭脚本 ./shutdow.sh
  8. 检查 tomcat 是否是 运行 此命令 ps -ef | grep tomcat,如果你没有列出 tomcat 进程,则它已成功停止,否则你可以强制关闭,使用 kill - 9 <process-number> 例如当你 运行 ps -ef | grep tomcat

ps-ef 命令的示例输出

servername    4328     1  0 21:43 pts/1    00:00:07 /usr/var/jdk1.8.0_111/bin/java -Djava.util.logging.config.file=... tomcat
servername    4497  4117  0 22:07 pts/1    00:00:00 grep --color=auto tomcat

然后用这个 kill -9 4328 停止 tomcat 这是因为 4328 是你从 ps -ef 输出中得到的进程号。

How access tomcat without port number?

如果您需要使用默认端口号通过浏览器访问您的 tomcat 服务器,请将连接器配置为 http 默认端口号 80。请参阅以下说明:

  1. 转到 apache-tomcat-6.0.53/conf 文件夹
  2. 打开server.xml文件
  3. 转到连接器配置,默认情况下如下所示:

默认连接器配置

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />
  1. 将端口号改为80,像这样:

端口号为 80 的连接器配置

<Connector port="80" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />
  1. 重启tomcat。这里的一项观察,仅适用于 linux。前 1024 个端口仅限于 root 用户,使用这种方法你只能使用 root 用户启动 tomcat。使用 iptables 有另一种解决方案,仅在您必须在没有 root 用户的情况下启动 tomcat 的情况下,如果您需要使用端口 80 并在没有 root 的情况下启动 tomcat,请参阅此 post用户 redirect-port-80-to-8080-and-make-it-work-on-local