Linux CentOS7安装配置tomcat8(使用非root用户/nobody用户运行)

Tomcat 1423℃

Tomcat主要用于运行JavaWeb项目,打开:tomcat8官方下载,可以看到官方有Binary Distributions和Source Code Distributions两大类,前者是二进制包,直接解压就可以使用;后者是源码包,需要编译安装。一般使用二进制包下Core(核心)的tar.gz格式下载即可。

tomcat需要依赖JRE或者JDK,如果仅仅是运行JavaWeb项目就安装JRE(JavaRuntime EnvironmentJava运行环境)。如果需要在服务器中开发JavaWeb项目则需要安装JDK(Java Development Kit,Java开发工具包)。安装JRE请参考:linux安装jre8 。安装JDK请参考:linux安装jdk8

1.为什么使用非root账户

root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。这意味着你的任何一个页面脚本(html/js)都具有root权限,所以可以轻易地用页面脚本修改整个硬盘里的文件!所以最好不要使用root启动tomcat。这里使用系统自带的nobody用户。

2.下载解压

#以下版本地址可能会失效,请在tomcat官网获取最最新版本的地址
wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz
tar xvf apache-tomcat-8.5.57.tar.gz
mv apache-tomcat-8.5.57 /usr/local/tomcat

3.编译安装 jsvc

jsvc是daemon(守护)模式用来启动 Tomcat 8 的程序

cd /usr/local/tomcat/bin
tar vzxf commons-daemon-native.tar.gz
cd commons-daemon-1.2.2-native-src/unix/
#预编译
./configure
#如果出现如下错误提示,说明设置JAVA_HOME环境变量,请参考上文中提到的”linux安装jdk8“。
*** Java compilation tools ***
checking for JDK location... configure: error: Java Home not defined. Rerun with --with-java=... parameter
#如果出现如下错误提示,说明需要安装gcc,执行:yum install -y gcc
checking build system type... x86_64-pc-linux-gnu checking host system type.
#如果看到以下信息,就可以编译/安装了
*** All done ***
Now you can issue "make"
#编译和安装
make

4.配置daemon守护程序

chown -R nobody:nobody /usr/local/tomcat
cp jsvc /usr/local/tomcat/bin
vim /usr/local/tomcat/bin/daemon.sh
#修改91行的tomcat为nobody,保存退出
test ".$TOMCAT_USER" = . && TOMCAT_USER=nobody

5.配置tomcat

#如果本机运行多个tomcat或者需要tomcat的8080端口:
vim /usr/local/tomcat/conf/server.xml
#修改约22行的远程停服务端口8005
<Server port="8006" shutdown="SHUTDOWN">
#修改约69行的服务监听8080
<Connector port="8081" protocol="HTTP/1.1"

6.使用daemon启动停止tomcat

sudo -E -u nobody /usr/local/tomcat/bin/daemon.sh start
sudo -E -u nobody /usr/local/tomcat/bin/daemon.sh stop

7.配置Tomcat为systemctl服务、设置开机启动

vi /usr/lib/systemd/system/tomcat.service
#加入如下内容:
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=oneshot
ExecStart=/usr/local/tomcat/bin/daemon.sh start
ExecStop=/usr/local/tomcat/bin/daemon.sh stop
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes

[Install]
WantedBy=multi-user.targe
#保存退出后,重新加载配置、设置开机启动
systemctl daemon-reload
systemctl enable tomcat

8.使用systemctl启动、停止、重启tomcat

systemctl start tomcat
systemctl restart tomcat
systemctl stop tomcat

9.查看tomcat运行身份和监听端口

ps aux|grep tomcat
netstat -tnlp|grep java

转载请注明:零五宝典 » Linux CentOS7安装配置tomcat8(使用非root用户/nobody用户运行)