先确认好你的Java环境,必须是JDK 8以上,不然跑不动Tomcat 9。怎么检查?直接敲java -version。要是没装,Ubuntu用apt装openjdk-11,CentOS自己找对应源,别耽误时间。
别用root直接跑服务,不安全,建个专用的。
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
-m建主目录,-U建同名组,-d指定主目录在/opt/tomcat,-s /bin/false不让它登录。
去官网找Tomcat 9的最新tar.gz核心版,或者直接用清华源下,速度快。这里以官网最新版本为例,把9.0.XX换成你找到的实际版本号。
# 切到临时目录
cd /tmp
# 下载,用清华源的话替换URL即可
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.XX/bin/apache-tomcat-9.0.XX.tar.gz
# 创建目标目录并解压,--strip-components=1去掉多余的一层目录
sudo mkdir -p /opt/tomcat
sudo tar xzf apache-tomcat-9.0.XX.tar.gz -C /opt/tomcat --strip-components=1
给tomcat组必要的权限,不然启动会报错。
# 切到主目录
cd /opt/tomcat
# 把整个目录的组设为tomcat
sudo chgrp -R tomcat /opt/tomcat
# 给conf目录读权限,执行权限
sudo chmod -R g+r conf
sudo chmod g+x conf
# 给bin和lib目录读写执行权限
sudo chmod -R ug+r bin lib
# 单独给bin里的sh脚本加执行权限,以防万一
sudo chmod +x /opt/tomcat/bin/*.sh
现在主流Linux发行版都用systemd,这样启动停止方便,还能开机自启。 先找到你的JAVA_HOME路径,用这个命令查:
sudo update-alternatives --config java
记下路径,比如/usr/lib/jvm/java-11-openjdk-amd64。
然后创建服务文件:
sudo nano /etc/systemd/system/tomcat.service
把下面内容粘贴进去,注意替换JAVA_HOME为你刚才查到的路径:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment='JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64'
Environment='CATALINA_PID=/opt/tomcat/temp/tomcat.pid'
Environment='CATALINA_HOME=/opt/tomcat'
Environment='CATALINA_BASE=/opt/tomcat'
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
保存退出(nano按Ctrl+O,回车,Ctrl+X)。
重载systemd守护进程:
sudo systemctl daemon-reload
# 启动Tomcat
sudo systemctl start tomcat
# 检查状态,看到Active(running)就没问题
sudo systemctl status tomcat
# 设置开机自启
sudo systemctl enable tomcat
主流用firewalld,简单:
# 永久开放8080端口
sudo firewall-cmd --permanent --add-port=8080/tcp
# 重载防火墙生效
sudo firewall-cmd --reload
如果是Ubuntu用ufw的话:
sudo ufw allow 8080/tcp
sudo ufw reload
还要注意,如果是云服务器,一定要去控制台的安全组里开放8080端口,不然怎么都访问不了。
打开浏览器,输入http://你的服务器IP:8080,看到那只黄色的猫就成功了。
夜雨聆风