zoukankan      html  css  js  c++  java
  • Ubuntu Linux 上安装TomCat的过程

    1. 从TomCat官网上下载二进制安装包,http://tomcat.apache.org/download-70.cgi。我下载到是apache-tomcat-7.0.39.tar.gz。
    2. 我按照这里http://www.linuxidc.com/Linux/2011-08/40787p2.htm所讲的来安装到。
    3. 将apache-tomcat-7.0.39.tar.gz拷贝到Home目录下。
    4. 启动Root Terminal,输入超级用户密码。
    5. 在/usr/local下面创建一个webserver的文件夹,用mkdir -p /usr/local/webserver/。
    6. 解压安装包到webserver目录下:tar xvzf apache-tomcat* -C /usr/local/webserver/
    7. cd到webserver目录下: cd /usr/local/webserver/
    8. 将安装目录改名为tomcat: mv apache-tomcat-7.0.39 tomcat。
    9. 启动tomcat: /usr/local/webserver/tomcat/bin/startup.sh
    10. 打开网页浏览器,键入http://localhost:8080,能看到Tomcat的页面,表示安装成功。
    11. 停止tomcat: /usr/local/webserver/tomcat/bin/shutdown.sh,重新在浏览器中键入http://localhost:8080,发现网页出不来了!
    12. 添加Tomcat管理账户:键入以下命令 gedit /usr/local/webserver/tomcat/conf/tomcat-users.xml。在文本中写入如下内容:
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
    13. 启动tomcat,在浏览器中键入http://localhost:8080,然后点击Manager App按钮,此时则会提醒你输入用户名和密码,输入admin和admin,你就会看到所要管理到内容。
    14. 下面讲解以守护进程运行tomcat。
    15. 因为下面要用到JAVA_HOME, CATALINA_HOME等环境变量,我们要设置它。
    16. 修改环境变量:gedit /etc/environment,然后在文本中加入如下内容:
    JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
    CATALINA_HOME="/usr/local/webserver/tomcat"
    17. 保存文件之后,在Root Terminal中输入ctrl+C结束gedit,然后键入source /etc/environment使环境变量生效。你可以直接键入$JAVA_HOME来查看它是不是存在并等于你之前所设的值。
    18. 根据http://tomcat.apache.org/tomcat-7.0-doc/setup.html所指示:
    cd到$CATALINA_HOME/bin: cd $CATALINA_HOME/bin。
    解压commons-daemon-native.tar.gz:tar xvfz commons-daemon-native.tar.gz。
    19. 然后cd commons-daemon-1.0.x-native-src/unix 进入unix目录,我们下一步是要生成jsvc程序。
    20. 执行 ./configure,然而给我报错说JAVA HOME没定义,实在搞不清楚为什么,不得已重新用 ./configure --with-java=/usr/lib/jvm/jdk1.6.0_41,终于成功了。
    21. 执行make,成功以后会看到在unix目录下有一个jsvc程序。
    22. 拷贝jsvc到tomcat/bin目录下:cp jsvc ../..
    23. cd到bin目录:cd ../..
    24. 利用下面到命令可以使tomcat以守护程序运行:
    cd $CATALINA_HOME
    ./bin/jsvc -cp ./bin/bootstrap.jar:./bin/tomcat-juli.jar \
    -outfile ./logs/catalina.out -errfile ./logs/catalina.err \
    org.apache.catalina.startup.Bootstrap
    可是我得到到是Segmentation fault,晕倒了!
    25. http://tomcat.apache.org/tomcat-7.0-doc/setup.html上还有一段话: The file $CATALINA_HOME/bin/daemon.sh can be used as a template for starting Tomcat automatically at boot time from /etc/init.d with jsvc. 也就是说用deamon.sh也可以实现以守护进程启动Tomcat。于是我尝试在root terminal中运行 ./bin/daemon.sh start,结果发现还是提示JAVA_HOME不存在,不得已用 export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_41来设定JAVA_HOME。后来我发现这篇文章比较正确的描述了如何蛇者环境变量 - http://stackoverflow.com/questions/6477415/how-to-set-java-home-in-ubuntu。用它设置JAVA_HOME,在~/.bashrc里面设置环境变量,重启机器,成功了!

    26. 继续运行./bin/daemon.sh start,结果提示Invalid user name 'tomcat' specified。我找到了这篇文章http://hi.baidu.com/xucha00/item/578bcc3c7ce88a23b2c0c53e。但是我没这么做,我准备增加一个用户tomcat去运行tomcat,因为官网上说:jsvc has other useful parameters, such as -user which causes it to switch to another user after the daemon initialization is complete. This allows, for example, running Tomcat as a non privileged user while still being able to use privileged ports. Note that if you use this option and start Tomcat as root, you'll need to disable the org.apache.catalina.security.SecurityListener check that prevents Tomcat starting when running as root. 于是我添加了一个新的tomcat用户,如下:
    添加一个系统用户tomcat,并且设置为不可登录系统:useradd -d /usr/local/webserver/tomcat -s /usr/sbin/nologin tomcat
    设置用户tomcat对tomcat目录的访问权限:chown -R tomcat.tomcat /usr/local/webserver/tomcat/

    27. 所有到似乎都成功了,于是我启动 ./bin/daemon.sh start,结果是"Segmentation Fault",妈的,怎么回事,搞不懂了!

  • 相关阅读:
    服务器端渲染SSR的优缺点?
    Vue轻量级富文本编辑器-Vue-Quill-Editor
    浏览器跨域问题
    CSS中 !important 的使用
    如何使用vue-table-with-tree-grid的树形表格组件
    各类程序员学习路线图
    Vue中 el-table大数据量加载,不分页,节省内存的性能优化
    看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)
    vue中class类名根据绑定的值三元表达式或字符串拼接动态添加类名
    close事件 vue_vue 监听浏览器关闭事件
  • 原文地址:https://www.cnblogs.com/AllanDragoon/p/2987859.html
Copyright © 2011-2022 走看看