免责声明:我不是服务器管理员,我是一名 Windows 用户,过着充满罪恶的安装向导和拖放的生活
我正在尝试在由 MediaTemple 专用虚拟服务器托管的 CentOS 5 上安装 Tomcat。
我基本上遵循本指南:
- 安装 jpackage 并配置 yum.repo.d jpackage 文件以设置 enabled=1
- 使用 yum 安装 java(yum install java)
- 使用“wget”下载 tomcat 的二进制发行版http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.tar.gz“
- 将 JAVA_HOME 设置为指向我使用“export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/”找到的 jdk 位置
- 我解压/解压 Tomcat 文件并运行 ./startup.sh 来启动 Tomcat 服务器。这应该将 Tomcat 服务器置于 myserver.com:8080 - 但是,当我尝试浏览它时(或者当我尝试从 SSH 中“curl localhost:8080”时),我收到无法联系主机的错误。输入 ./startup.sh 后,控制台输出如下:
[root@myserver bin]# ./startup.sh
Using CATALINA_BASE: /root/apache-tomcat-6.0.14 Using CATALINA_HOME: /root/apache-tomcat-6.0.14 Using CATALINA_TMPDIR: /root/apache-tomcat-6.0.14/temp Using JRE_HOME: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/ [root@myserver bin]#
我这里是不是漏掉了什么步骤?
编辑:我现在通过查看日志发现发生了以下错误:
VM 初始化期间发生错误无法为对象堆保留足够的空间
答案1
Tomcat6 是必需的吗?Centos 是什么版本?(我假设是“某种 Tomcat”和“当前 Centos”,在撰写本文时应该是 5.3)
除非您想要 Tomcat 6,否则您不需要 jpackage repo。此外,Centos 5.3 附带 openjdk 1.6.0,它已通过 Java SE 6 TCK。
只需“yum install tomcat5”即可安装您需要的所有依赖项(包括 openjdk),其中许多依赖项将基于 jpackage 源。安装完成后,您只需“service tomcat5 start”即可启动它。注意:以 root 身份运行 Web 容器非常非常糟糕,因为这会带来巨大的安全风险。存储库版本安装的 tomcat5 服务会将其权限降低到具有更有限权限的“tomcat”用户。要让 tomcat 在系统启动时自动启动,请使用“chkconfig tomcat5 on”。
在上述情况下,端口 8080 可能被默认防火墙阻止。您可以使用“service iptables stop”关闭防火墙(建议仅在测试连接时使用,生产中不要在没有防火墙的情况下运行)。Centos 提供了 GUI 和文本 UI 工具(分别为 system-config-securitylevel 和 system-config-securitylevel-tui)来修改防火墙,或者您可以直接使用 iptables(参见“man iptables”)。
答案2
我仔细遵循了本指南后解决了这个问题:
http://de0ris.blogspot.com/2008/08/installing-tomcat-6x-on-centos-5.html
正如上面的评论中提到的,JRE 和 JDK 是单独下载的。我似乎无法在任何包管理器中找到它们,所以我不得不直接下载并运行它们。
答案3
好吧,看来 tomcat 启动正确,而且通常容易遗漏的内容已经涵盖。我会检查机器是否运行了防火墙。我不是 Centos 专家,所以我不知道他们是否默认运行防火墙。以 root 身份执行:
netstat -lnp | grep 8080
如果返回任何内容,则表明您的服务器正在运行并在 8080 上监听,但是某些东西(防火墙)阻止了对它的访问。
如果它没有运行,你还需要深入研究其他内容。无论你设置了 tomcat 以记录到哪里,你都应该有一个“catalina.out”文件。我记得应该是“/path/to/tomcat/server/logs”。检查一下,看看它是否抛出了任何异常。可能会提供更多关于发生了什么的线索。
答案4
嗯,基本上你是在开放的 VZ VPS 上,尝试 xen 或安装 jboss,它也附带 tomcat,这将解决内存交换问题。
http://davidanand.blogspot.com/2010/06/jboss-tomcat-on-openvz-centos.html
希望这可以帮助 ;)