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