安全起见,tomcat需要使用一个普通用户运行
使用以下命令添加tomcat用户组
sudo groupadd tomcat
在/usr/local/
目录下添加tomcat目录,用于安装tomcat饼当作tomcat用户的根目录
sudo mkdir /usr/local/tomcat
创建tomcat用户,添加进tomcat用户组,设置/usr/local/tomcat
为其根目录,并确保该账户不会被登录
sudo useradd -M -s /bin/nologin -g tomcat -d /usr/local/tomcat tomcat
输入以下命令验证tomcat用户已经创建成功
groups tomcat
结果如下:
tomcat : tomcat
表明创建成功
安装tomcat
在这里查找适合自己版本的tomcat安装包,推荐使用二进制包,在Binary Distributions
的Core目录下拿到tar.gz的链接,使用wget下载到本地:
wget http://www.strategylions.com.au/mirror/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
解压到/usr/local/tomcat
下:
sudo tar xvf apache-tomcat-8*tar.gz -C /usr/local/tomcat --strip-components=1
###权限控制
为tomcat用户修改访问权限,切换到tomcat目录,把整个目录拥有者切换为tomcat组
cd /usr/local/tomcat
sudo chgrp -R tomcat /usr/local/tomcat
给tomcat组赋予conf目录的读权限,目录本身的可执行权限
sudo chmod -R g+r conf
sudo chmod g+x conf
将bin
、webapps
、work
、temp
、logs
所有者改为tomcat用户
sudo chown -R tomcat bin/ webapps/ work/ temp/ logs/
注:如果启动之后访问报500错误,No output folder可能是权限的问题,确认把上述几个目录下的目录所有者和所有组也改为tomcat即可
注册服务
想要用服务的方式启动tomcat,需要设置tomcat的系统单元文件,用下面的命令创建并打开一个单元文件
sudo vi /etc/systemd/system/tomcat.service
把下面的脚本粘贴进去
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/java/jdk1.8.0_171-amd64/jre
Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_BASE=/usr/local/tomcat
Environment='CATALINA_usr/localS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_usr/localS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
注意,上面的JAVA_HOME路径一定要配置正确
保存退出,此脚本可以指示服务器使用指定的脚本,用tomcat用户运行tomcat
重新加载systemd使tomcat服务生效
sudo systemctl daemon-reload
使用systemctl
命令启动tomcat
sudo systemctl start tomcat
使用status命令查看服务状态
sudo systemctl status tomcat
使用enable
命令使tomcat开机自启动
sudo systemctl enable tomcat
此时已经可以通过浏览器访问tomcat页面了
http://server_IP_address:8080
配置tomcat管理员
为了使用tomcat自带的管理程序,我们需要登录到tomcat服务器,编辑user配置文件:
sudo vi /usr/local/tomcat/conf/tomcat-users.xml
我们需要添加一个用户,能够访问manager-gui
和admin-gui
,如下添加用户:
<tomcat-users>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>
重启tomcat使其生效
sudo systemctl restart tomcat
目前高版本的tomcat默认限制只能通过tomcat部署本机访问管理页面,可以修改以下两个文件去除对Manager App
和Host Manager App
的访问限制
sudo vi /usr/local/tomcat/webapps/manager/META-INF/context.xml
sudo vi /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
注释掉ip限制即可
<Context antiResourceLocking="false" privileged="true" >
<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>
保存退出,重启tomcat使其生效
通过浏览器访问tomcat页面
http://server_IP_address:8080
点击Manager App,进入管理页面
要求输入管理员账号密码
输入上面配置的用户和密码进入管理页面
可以在此处部署、启动、停止、重启服务
同样的,也可以进入Host Manager
可以在通过改页面添加虚拟host
至此,tomcat已经完全配置完毕