无法在 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。
- 回顾一下你真正需要的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
- 将 tomcat 解压缩到您的磁盘中
- 确保您授予
bin
文件夹中的 .sh
脚本的执行权限。例如,如果您位于 tomcat apache-tomcat-6.0.53/bin$>
的 bin 文件夹中,那么您可以 运行 chmod +x ./*.sh
- 确保
JAVA_HOME
已设置
- 在您的 bin 文件夹中 运行 像这样的 startup.sh 脚本
./startup.sh
- 检查 tomcat 是否为 运行 此命令
ps -ef | grep tomcat
它将列出与 tomcat.[=62= 相关的 运行ning 进程]
- 尝试停止 tomcat,在您的
bin
文件夹中 运行 关闭脚本 ./shutdow.sh
- 检查 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。请参阅以下说明:
- 转到
apache-tomcat-6.0.53/conf
文件夹
- 打开
server.xml
文件
- 转到连接器配置,默认情况下如下所示:
默认连接器配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 将端口号改为80,像这样:
端口号为 80 的连接器配置
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 重启tomcat。这里的一项观察,仅适用于 linux。前 1024 个端口仅限于 root 用户,使用这种方法你只能使用 root 用户启动 tomcat。使用 iptables 有另一种解决方案,仅在您必须在没有 root 用户的情况下启动 tomcat 的情况下,如果您需要使用端口 80 并在没有 root 的情况下启动 tomcat,请参阅此 post用户 redirect-port-80-to-8080-and-make-it-work-on-local
我无法在 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。
- 回顾一下你真正需要的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
- 将 tomcat 解压缩到您的磁盘中
- 确保您授予
bin
文件夹中的.sh
脚本的执行权限。例如,如果您位于 tomcatapache-tomcat-6.0.53/bin$>
的 bin 文件夹中,那么您可以 运行chmod +x ./*.sh
- 确保
JAVA_HOME
已设置 - 在您的 bin 文件夹中 运行 像这样的 startup.sh 脚本
./startup.sh
- 检查 tomcat 是否为 运行 此命令
ps -ef | grep tomcat
它将列出与 tomcat.[=62= 相关的 运行ning 进程] - 尝试停止 tomcat,在您的
bin
文件夹中 运行 关闭脚本./shutdow.sh
- 检查 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。请参阅以下说明:
- 转到
apache-tomcat-6.0.53/conf
文件夹 - 打开
server.xml
文件 - 转到连接器配置,默认情况下如下所示:
默认连接器配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 将端口号改为80,像这样:
端口号为 80 的连接器配置
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 重启tomcat。这里的一项观察,仅适用于 linux。前 1024 个端口仅限于 root 用户,使用这种方法你只能使用 root 用户启动 tomcat。使用 iptables 有另一种解决方案,仅在您必须在没有 root 用户的情况下启动 tomcat 的情况下,如果您需要使用端口 80 并在没有 root 的情况下启动 tomcat,请参阅此 post用户 redirect-port-80-to-8080-and-make-it-work-on-local