在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.sh sudo vim /etc/profile.d/tomcat.sh 添加以下配置: JAVA_HOME=/opt/jdk1.8.0_151 CATALINA_HOME=/opt/apache-tomcat-8.0.52 PATH=$JAVA_HOME/bin:$PATH export 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/bin tar -zxvf commons-daemon-native.tar.gz cd commons-daemon-1.0.15-native-src/unix ./configure make 这时我们就编译得到了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/tomcat sudo ln -s /etc/rc3.d/S01tomcat /etc/init.d/tomcat sudo systemctl daemon-reload sudo service tomcat start
这时我们就发现ps -ef |grep tomcat中会有2个tomcat进程,一个是root权限的daemon进程,一个是tomcat的实例进程,如果实例进程不小心挂掉了,守护现成就会重新创建它~
【问题】
A:为什么要在daemon.sh重新设定JAVA_HOME和CATALINA_HOME环境变量?
Q:这时因为使用sudo权限运行命令的时候,用户自定义的环境变量会默认被重置。另外系统启动的时候环境变量也可能没有初始化。所以还是放在启动脚本中放心啊。