在Linux系统上安装Tomcat,相信对大家来讲已经是很普通的很简单的任务了。虽然我也配置过很多次,还是重新整理一下作为备忘吧。
【环境】
Ubuntu+Sun Jdk1.8+tomcat8.0.52
1.下载tomcat安装包,当然是从
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
2.下载JDK,当然也是官网下载,不过我是下载好上传的。不再赘述
3.解压tomcat,JDK到/opt/目录,CATALINA_HOME的值就是/opt/apache-tomcat-8.0.52
sudo tar -xzvf apache-tomcat-8.0.52.tar.gz -C /opt/ sudo tar -zxvf jdk1.8_151.x64.tar.gz -C /opt/
4.配置JAVA_HOME和CATALINA_HOME
sudo touch /etc/profile.d/tomcat.shsudo vim /etc/profile.d/tomcat.sh添加以下配置:JAVA_HOME=/opt/jdk1.8.0_151CATALINA_HOME=/opt/apache-tomcat-8.0.52PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CATALINA_HOME PATH然后执行source tomcat.sh,立刻使配置生效
5.修改CATALINA_HOME的访问权限,如果你的用户是test
sudo chown -R test:test /opt/apache-tomcat-8.0.52
6.启动tomcat并验证
cd $CATALINA_HOME/bin./startup.sh启动完毕后验证启动结果:ps -ef|grep tomcat使用wget看看能不能正常访问wget localhost:8080
【如何正确的安装?】
如果你是开发人员或者测试人员,那么通过上述的配置你就可以进行日常的工作了。但是如果是产品服务器,是不是还有些事情要做呢?
1.让tomcat在低权限用户下运行
创建tomcat用户和tomcat用户组
sudo adduser --system --group --no-create-home tomcat
2.让tomcat以daemon的形式运行
这时我们需要安装GCC来编译一个叫jsvc的东西(Java Service)
cd $CATALINA_HOME/bintar -zxvf commons-daemon-native.tar.gzcd commons-daemon-1.0.15-native-src/unix./configuremake这时我们就编译得到了jsvc文件,拷贝到bin目录cp jsvc ../..
3.修改daemon.sh文件。设定JAVA_HOME并添加CATALINA_HOME变量
- # JAVA_HOME=/opt/jdk-1.6.0.22+ JAVA_HOME=/opt/jdk1.8_151... # Only set CATALINA_HOME if not already set+ CATALINA_HOME=/opt/apache-tomcat-8.0.52 test ".$CATALINA_HOME" = . && CATALINA_HOME=`cd "$DIRNAME/.." >/dev/null; pwd`
4.修改文件夹权限
sudo chown -R tomcat:tomcat $CATALINA_HOME/sudo chmod -R 600 $CATALINA_HOME/
5.添加到系统服务和启动项
sudo cp $CATALINA_HOME/bin/daemon.sh /etc/init.d/tomcatsudo ln -s /etc/rc3.d/S01tomcat /etc/init.d/tomcatsudo systemctl daemon-reloadsudo service tomcat start
这时我们就发现ps -ef |grep tomcat中会有2个tomcat进程,一个是root权限的daemon进程,一个是tomcat的实例进程,如果实例进程不小心挂掉了,守护现成就会重新创建它~
【问题】
A:为什么要在daemon.sh重新设定JAVA_HOME和CATALINA_HOME环境变量?
Q:这时因为使用sudo权限运行命令的时候,用户自定义的环境变量会默认被重置。另外系统启动的时候环境变量也可能没有初始化。所以还是放在启动脚本中放心啊。