红联Linux门户
Linux帮助

Centos7安装tomcat-8.5.9+jsvc并配置systemd服务

发布时间:2017-01-14 10:20:05来源:linux网站作者:水墨风光
一.安装JDK.
重要:tomcat-8.5.9依赖jre7以及以上版本,jdk包含了jre.
到Oracle网站下载jdk8,Linux的64位rpm版.
[root#]rpm -ivh jdk-8u111-linux-x64.rpm
提示:jdk安装后位于/usr/Java/目录内,default和latest都是软链接到实际目录。
 
二.安装tomcat-8.5.9和jsvc.
2.1.到tomcat网站下载tomcat-8.5.9,Core里面的tar.gz版.
[root#]mkdir /opt/apache/
[root#]tar xvf apache-tomcat-8.5.9.tar.gz -C /opt/apache/
2.2.编译安装jsvc.
编译前需要先安装好gcc,autoconf和jdk。
[root#]yum install gcc autoconf
进入${CATALINA_BASE}/bin目录下,
[root#] cd /opt/apache/apache-tomcat-8.5.9/bin/
解压文件,
[root#] tar xf commons-daemon-native.tar.gz
编译安装jsvc,jsvc可以使tomcat用普通用户打开80端口.
-with-java=/usr/java/latest 指定了jdk的路径.
[root#] cd commons-daemon-1.0.15-native-src/unix/
[root#] ./configure –with-java=/usr/java/latest
[root#] make
[root#] cp jsvc ../..
 
三.添加tomcat用户,并分配目录.
tomcat的daemon.sh默认以tomcat用户启动,所以需要先添加tomcat.
[root#]useradd tomcat -s /sbin/nologin -M
[root#]chown -R tomcat /opt/apache/apache-tomcat-8.5.9
 
四.添加systemd服务单元.添加tomcat为自启动服务.
[root#]vi /etc/systemd/system/tomcat.service
加入如下内容:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/java/latest
Environment=CATALINA_HOME=/opt/apache/apache-tomcat-8.5.9
Environment=CATALINA_BASE=/opt/apache/apache-tomcat-8.5.9
ExecStart=/opt/apache/apache-tomcat-8.5.9/bin/daemon.sh start
ExecStop=/opt/apache/apache-tomcat-8.5.9/bin/daemon.sh stop
[Install]
WantedBy=multi-user.target
输入:wq保存。
下面,设置tomcat为自启动,然后启动tomcat服务。
[root#]systemctl daemon-reload
[root#]systemctl enable tomcat
[root#]systemctl start tomcat
[root#]systemctl status tomcat
使用本机浏览器打开http://localhost:8080/测试。
 
五.重要说明:
1).tomcat正常运行需要设置以下环境变量:
JAVA_HOME(必须),
JRE_HOME(可选)
CATALINA_HOME(必须)
CATALINA_BASE(可选)
本文tomcat.service内已经将环境变量设置好。如果不想在service单元内设置,可以在
daemon.sh里面设置JAVA_HOME和CATALINA_HOME,添加在# OS specific support (must be 'true' or 'false').这一行前面。
也可以在daemon.sh的命令行参数里面设置,如下:
ExecStart=/opt/apache/apache-tomcat-8.5.9/bin/daemon.sh  --java-home  /usr/java/latest  --catalina-home  /opt/apache/apache-tomcat-8.5.9 start
2).关于setenv.sh
${CATALINA_HOME}/bin/setenv.sh里面不可以设置CATALINA_HOME和CATALINA_BASE,因为setenv.sh是需要在这两个环境变量存在的情况下,定位路径。
3).systemd运行shell脚本的环境变量不是从/etc/profile里面读取。详情可参考systemd文档,以及bash文档。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27796.html