想部署个 Java Web 项目?那你八成会接触到 Tomcat。
本篇就是为 从没用过 Tomcat 的新手 写的,带你一步一步在 Linux 系统里把 Tomcat 装好、跑起来!
Tomcat 是一个免费的 Java Web 服务器,功能很全,但上手也不算太复杂,适合开发测试阶段用。
你写的 .jsp
文件、Spring 项目打包出来的 .war
文件,扔进去它就能跑,非常方便。
Tomcat 是用 Java 写的,它自己也跑在 Java 环境里。所以:
java -version
如果系统提示没这个命令,先装 Java:
sudo apt update
sudo apt install default-jdk -y
sudo yum install java-11-openjdk -y
然后再用 java -version
检查一下,能输出版本号就没问题。
我们一般去官网手动下一个干净的版本(系统自带的常常太旧)。
去 Tomcat 官网:https://tomcat.apache.org
比如你要装 Tomcat 10,可以运行:
cd /opt
sudo wget https://downloads.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
sudo tar -zxvf apache-tomcat-10.1.20.tar.gz
sudo mv apache-tomcat-10.1.20 tomcat
现在你的 Tomcat 安装路径是 /opt/tomcat/
cd /opt/tomcat/bin
sudo ./startup.sh
正常的话会看到一堆输出,最后出现:
Tomcat started.
http://localhost:8080
或者是你远程服务器的 IP + 端口:
http://你的IP地址:8080
能看到一个 Tomcat 的欢迎页面就说明成功啦!
Tomcat 默认你是不能直接访问管理页面的,需要设置下用户。
编辑配置文件:
sudo nano /opt/tomcat/conf/tomcat-users.xml
在
标签之间加上这几行:
保存后,重启 Tomcat:
./shutdown.sh
./startup.sh
然后你就能通过浏览器访问:
http://你的IP:8080/manager/html
用你设置的用户名密码登录后台管理界面。
在阿里云、腾讯云、AWS 等地方,你要在后台安全组放行 8080 端口。
如果你本地机器装了防火墙,可以这样放行:
sudo ufw allow 8080
每次都手动 startup.sh
太麻烦?我们给它搞成 systemd 服务。
新建文件:
sudo nano /etc/systemd/system/tomcat.service
内容如下(根据你系统路径适当修改):
[Unit]
Description=Tomcat Server
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=root
Group=root
[Install]
WantedBy=multi-user.target
然后:
sudo systemctl daemon-reload
sudo systemctl enable tomcat
sudo systemctl start tomcat
从此以后,系统每次启动,Tomcat 也会自动启动啦。
很简单,把你打包好的 .war
文件扔进 /opt/tomcat/webapps/
目录下,重启一下 Tomcat:
./shutdown.sh && ./startup.sh
它就会自动解压 .war
文件、生成访问路径,比如你扔进去的是 myapp.war
,那你访问的地址就是:
http://你的IP:8080/myapp
步骤 | 操作描述 |
---|---|
1 | 安装 Java 环境 |
2 | 下载并解压 Tomcat |
3 | 执行 startup.sh 启动服务 |
4 | 浏览器访问 8080 查看效果 |
5 | 设置用户,访问管理后台(可选) |
6 | 设置 systemd 服务(可选) |
7 | 上传 .war 项目部署运行 |