1. 概念部分
一直以来都觉得Tomcat以root身份运行非常不安全,故研究Tomcat如何以普通用户身份运行,以下是参考网络上的一些配置实现Tomcat以daemon方式运行于CentOS 6&7系统下面。
另外,由于systemctl的功能,我们可以使用另外一种方法部署,详细请参阅比较新的文章,
2 实操部分
2.1 系统环境
2.1.1 系统信息
OS = RHEL 8.x x86_64
IP Address = 10.168.0.157
Host Name = any.cmdschool.org
2.1.2 配置编译环境和依赖包
yum -y install gcc gcc-c++ make expat-devel yum install -y libcap-devel
2.1.3 关闭SELinux
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2.1.4 配置防火墙
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload firewall-cmd --list-all
2.2 软件配置
2.2.1 安装JDK
请参阅以下文章安装JDK,
http://www.cmdschool.org/archives/397
2.2.2 下载安装包
cd ~ wget http://apache.fayea.com/tomcat/tomcat-9/v9.0.0.M13/bin/apache-tomcat-9.0.0.M13.tar.gz
2.2.3 配置运行用户
groupadd -g 91 tomcat useradd -u 91 -g 91 -d /usr/tomcat -s /sbin/nologin tomcat
2.2.4 部署tomcat目录
mkdir /usr/tomcat chown root:tomcat -R /usr/tomcat chmod 770 -R /usr/tomcat/
2.2.5 配置安装目录
cd ~ tar -xf apache-tomcat-9.0.0.M13.tar.gz mv apache-tomcat-9.0.0.M13 /usr/tomcat/ chown root:tomcat -R /usr/tomcat chmod 770 -R /usr/tomcat/ ln -s /usr/tomcat/apache-tomcat-9.0.0.M13/logs/ /var/log/tomcat
2.3 配置Tomcat
2.3.1 配置环境变量
echo 'JAVA_HOME=/usr/java/jdk1.8.0_65' > /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh echo 'JRE_HOME=${JAVA_HOME}/jre' >> /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh echo 'CATALINA_HOME=/usr/tomcat/apache-tomcat-9.0.0.M13' >> /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh echo 'CATALINA_BASE=${CATALINA_HOME}' >> /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh echo "JAVA_OPTS='-server -Xms2048m -Xmx4096m -Xss512k'" >> /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh echo 'TOMCAT_USER=tomcat' >> /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh
2.3.2解压daemon工具包
cd /usr/tomcat/apache-tomcat-9.0.0.M13/bin/ tar -xf commons-daemon-native.tar.gz
2.3.3 编译daemon工具
cd commons-daemon-1.0.15-native-src/unix ./configure make
2.3.4 部署daemon工具
cp jsvc /usr/tomcat/apache-tomcat-9.0.0.M13/bin/
2.3.5 手动测试服务启停
/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop netstat -antp
2.3.6 配置tomcat服务
vim /usr/lib/systemd/system/tomcat.service
创建如下配置,
[Unit] Description=Apache tomcat manager Wants=network.target Before=network.target After=network-pre.target Documentation=https://tomcat.apache.org [Service] Type=forking ExecStartPre=/bin/sh -c 'chown root:tomcat -R /usr/tomcat;chmod 770 -R /usr/tomcat' ExecStart=/bin/sh -c '/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start' ExecStop=/bin/sh -c '/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop' PIDFile=/usr/tomcat/apache-tomcat-9.0.0.M13/logs/catalina-daemon.pid Restart=on-success [Install] WantedBy=multi-user.target
修改完脚本后,你需要使用如下命令重载服务,
systemctl daemon-reload
你可使用如下命令控制服务和查询状态,
systemctl start tomcat.service systemctl status tomcat.service systemctl stop tomcat.service systemctl restart tomcat.service
测试完毕,建议你使用如下命令设置服务自动启动,
systemctl enable tomcat.service
2.3.7 浏览器测试
http://10.168.0.157:8080/
参阅文档:
=============================
http://blog.csdn.net/bebabyron/article/details/11852317
http://www.liaoshixiong.cn/java/centos7-tomcat-daemon.html
http://www.xuebuyuan.com/1361441.html
http://blog.csdn.net/centre10/article/details/50639693
没有评论