【问题标题】:Unable to start Tomcat in Ubuntu 12.04无法在 Ubuntu 12.04 中启动 Tomcat
【发布时间】:2015-02-05 08:46:14
【问题描述】:

我使用sudo apt-get install tomcat7 安装了tomcat,当我尝试使用sudo /usr/share/tomcat7/bin/startup.sh 启动tomcat 服务器时出现以下错误

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 touch: cannot touch '/usr/share/tomcat7/logs/catalina.out': No such file or directory /usr/share/tomcat7/bin/catalina.sh: 389: /usr/share/tomcat7/bin/catalina.sh: cannot create /usr/share/tomcat7/logs/catalina.out: Directory nonexistent。我遇到了类似的问题How to fix 'Failed to initialize end point associated with ProtocolHandler' error? 但解决方案说我要重新安装我不想做的 tomcat。需要帮助

【问题讨论】:

    标签: tomcat ubuntu tomcat7


    【解决方案1】:

    您需要使用service tomcat start/etc/init.d/tomcat start 将其作为服务启动。

    【讨论】:

    • 但是为什么呢?为什么我不能通过在 $CATALINA/bin 目录中然后通过执行 startup.sh 来直接启动它?
    【解决方案2】:

    首先您需要设置$JAVA_HOME,以便tomcat 中的$JRE_HOME 指向正确的Java 路径。

    如果您没有安装 Java,请从 Ubuntu 软件中心安装最新版本的 Java

    然后,在终端类型中

    sudo gedit ~/.bashrc

    这将打开 .bashrc 文件。最后加上

    export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

    您应该检查/usr/lib/jvm中的确切文件夹名称

    要启动tomcat7,在终端输入

    sudo service tomcat7 start

    然后输入停止它

    sudo service tomcat7 stop

    当您输入sudo /usr/share/tomcat7/bin/startup.sh 时,您应该会看到

    Using JRE_HOME: /usr/lib/jvm/java-7-openjdk-amd64

    【讨论】:

      【解决方案3】:

      我正在解决在 Ubuntu 中设置 tomcat 8 的类似问题。虽然我可以手动开始使用下面的超级用户脚本,但它不能解决我收到的错误。

      sudo service tomcat8 start
      

      我可以告诉你,在我的情况下 /usr/share/tomcat7/logs/ 文件夹不存在。 查看您正在运行的脚本并检查您的路径。

      我正在运行 startup.sh 并意识到我的路径不正确。我打开了位于 CATALINA_HOME 目录中的 startup.sh 脚本。寻找失败的行:错误:触摸:无法触摸'/usr/share/tomcat8/logs/catalina.out'。 看到我们正在执行 catalina.sh。

      # Guilty Line in this case
      EXECUTABLE=catalina.sh
      

      由于该行引用了 catalina.sh 脚本,我试图在该脚本中找到错误。 catalina.sh 位于您的 CATALINA_HOME 目录中。如果您在 cmets 中阅读,这些都是默认设置。

      #   CATALINA_OUT    (Optional) Full path to a file where stdout and stderr
      #                   will be redirected.
      #                   Default is $CATALINA_BASE/logs/catalina.out
      

      我发现有罪并更新了路径以匹配我的实际文件夹路径,将“日志”更改为“日志”。

      if [ -z "$CATALINA_OUT" ] ; then
         CATALINA_OUT="$CATALINA_BASE"/log/catalina.out
      fi
      

      进行此更新后,我再次运行脚本:

      touch: cannot touch '/usr/share/tomcat8/log/catalina.out': Permission denied
      /usr/share/tomcat8/bin/catalina.sh: 402:         
      /usr/share/tomcat8/bin/catalina.sh: cannot create     
      /usr/share/tomcat8/log/catalina.out: Permission denied
      

      这一次我必须处理文件夹的权限。确保调用您的脚本的用户拥有权限。

      【讨论】:

        猜你喜欢
        • 2013-05-14
        • 2013-01-07
        • 1970-01-01
        • 1970-01-01
        • 2012-12-03
        • 1970-01-01
        • 2012-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多