如何在 Ubuntu 14.04 LTS 中安装 Tomcat7?

如何在 Ubuntu 14.04 LTS 中安装 Tomcat7?

如果我apt-get install tomcat7安装的是损坏的 tomcat7。简单的 startup.sh 会出错,修复后会显示 tomcat 已启动,但 localhost:8080 中没有任何显示。shutdown.sh 会出错,甚至会抛出 Java 异常。这在以前的 Ubuntu 版本中不会发生,它只是正常工作。因此,看起来 tomcat 包最近没有得到维护。

当我测试我的 Web 应用程序时,我可以从 Eclipse(顺便说一句,它也没有得到适当的维护)中使其运行。但是有些东西我需要在独立的 tomcat 安装中进行测试。到目前为止,Google 还没有提供帮助。

你们中有人在 Ubuntu 14.4LTS 中正确安装了 tomcat7 吗?如果是这样,你能给我指出正确的方向吗?

编辑:

这里有一些日志。

启动 tomcat:

$ sudo /usr/share/tomcat7/bin/startup.sh 
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Tomcat started.

浏览至localhost:8080(和http://127.0.0.1:8080http://127.0.0.1http://[my network ip here]):

Oops! Google Chrome could not connect to localhost:8080

停止 tomcat 也失败:

$ sudo /usr/share/tomcat7/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Jul 03, 2014 7:15:55 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/common/classes], exists: [false], isDirectory: [false], canRead: [false]
Jul 03, 2014 7:15:55 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/common], exists: [false], isDirectory: [false], canRead: [false]
Jul 03, 2014 7:15:55 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/server/classes], exists: [false], isDirectory: [false], canRead: [false]
Jul 03, 2014 7:15:55 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/server], exists: [false], isDirectory: [false], canRead: [false]
Jul 03, 2014 7:15:55 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/shared/classes], exists: [false], isDirectory: [false], canRead: [false]
Jul 03, 2014 7:15:55 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/shared], exists: [false], isDirectory: [false], canRead: [false]
Jul 03, 2014 7:15:55 PM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop: 
java.io.FileNotFoundException: /usr/share/tomcat7/conf/server.xml (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:466)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:370)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:457)

答案1

我在一个新容器里尝试了这个:

sudo apt-get install tomcat7
sudo dpkg-reconfigure tomcat7

就我的情况而言,这似乎解决了这个问题。

编辑:dpkg-reconfigure 将用默认的数据包管理器配置替换您对 tomcat7 的自定义配置,或者在给定的位置提供一个菜单来自定义。

答案2

我认为您的 CATALINA_BASE 不正确,它超出了 /var/lib/tomcat7 目录,而 CATALINA_HOME 就您声明变量的方式而言是正确的。将 CATALINA_HOME 和 CATALINA_BASE 与 JAVA_HOME 和 JRE_HOME 一起添加到 /etc/default/tomcat7。该可执行文件会在启动 servlet 时通知 tomcat servlet 环境的设置方式。

也可以考虑将它们放入 /etc/profile 中,然后将它们导出到 /etc/bash.bashrc(即导出 CATALINA_HOME)。只有当且仅当您的网站没有用户登录或注册时才应这样做。如果不导出变量,它们仍将在本地声明。

要全局声明变量的方法,如果您是管理员(组 4,您可能还想考虑将 syslog 移动到组 37,清除 rsyslog 并保持守护进程运行以进行日志记录,以便保留强制访问控制)您可以考虑在您的主目录中创建一个 ~/.bash_completion 或 ~/.bash_expert 文件,其中包含类似以下内容:

# ~/.bash_expert in regards to servlet alias
if [ -f /etc/bash_completion.d/.tomservlet ]; then
    . /etc/bash_completion.d/.tomservlet
fi
export CATALINA_HOME
export CATALINA_BASE
export JRE_HOME
export JAVA_HOME

然后在 /etc/bash_completion.d/.tomservlet 中创建 .tomservlet 文件并添加以下内容:

CATALINA_HOME=/usr/share/tomcat7
CATALINA_BASE=/var/lib/tomcat7
JAVA_HOME=/usr/lib/jvm/jdk1.7.0
JRE_HOME=$JAVA_HOME:/jre

完成后,将以下行添加到 ~/.bashrc

if [ -f "$HOME/.bash_expert" ];then
    . "$HOME/.bash_expert"
fi

然后 source ~/.bashrc 文件,如下所示:

:~$ source .bashrc

并且无论发生何种类型的客户端交互,它都应该能以安全的方式解决您的问题。(不要责怪我,您永远不知道网络空间中潜伏着什么火星人,有时这可能是一个可怕的境界)。

PS 我之前指的是 oracle-sun jdk7,或者我猜它只是 Oracle Jdk7,因此如果您使用的是 Open Jdk,请根据需要替换它;如果使用 oracle,请返回到 /etc/init.d/tomcat 文件并将 openjdk 更改为您的版本,其中脚本引用“$OPENJDK”。这也假设您从存储库安装。

祝你好运,愿你的公猫发出呼噜声!!

答案3

  1. 从其网站下载官方 tomcat

    wget http://mirrors.fe.up.pt/pub/apache/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.zip
    
  2. 解压

    unzip apache-tomcat-7.0.54.zip       
    
  3. 确保已安装 Java 并定义 JAVA_HOME

  4. 启动你的 tomcat。

答案4

安装 eclipse 和默认 jdk 和 git

$ sudo apt-get eclipse
$ sudo apt-get eclipse-jdt
$ sudo apt-get eclipse-pde
$ sudo apt-get eclipse-platform
$ sudo apt-get eclipse-rcp

$ sudo apt-get install default-jdk
$ sudo apt-get install ant git

我使用 ssh 是因为它是一个用于测试的虚拟机
1 下载文件“tomcat7.0 apache download”

$ wget http://apache.claz.org/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.tar.gz

2 提取

$ sudo tar -xvf apache-tomcat-7.0.54.tar.gz

3 创建目录

$ sudo mkdir /usr/local/tomcat7

4 将文件移动到目录

$ mv apache-tomcat-7.0.54 /usr/local/tomcat7

5 安装

$ cd /usr/local/tomcat7/apache-tomcat-7.0.54
$ sudo ln -s /var/lib/tomcat/conf conf
$ sudo ln -s /etc/tomcat7/policy.d/03catalina.policy/conf/catalina.policy
$ sudo ln -s /var/log/tomcat7 log
$ sudo chmor -R 777 /usr/local/tomcat7/apach*/conf

6 配置现在我们进入ubuntu桌面

Lunch eclipse => window => Preferences => Server => Runtime Envirenment


选择版本浏览目录 => 完成

$ cd ../../apach*/bin
$ ls -la 

关掉它

$ sudo ./shutdown.sh

让我们做个测试

eclipse => file => new => other... => web project

doulble click it => right click web content => test.htm 

<html>
<head>
<title> testing tomcat7 & eclipse</title>
</head>
<h2>Job's Done !</h2>

click on 'no servers are ....' => tomcat version => next => add to configured 
menu => run => run as => fninish
localhost:8080/test/test.htm
localhost:8080/project name/page name

视频教程:'http://www.youtube.com/watch?v=n5joqK07-NE

相关内容