news 2026/6/23 18:57:33

如何在Linux上部署Web项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何在Linux上部署Web项目

配置环境

一般部署JavaWeb的项目需要安装 jdk,tomcat、MySql 环境

安装JDK

首先需要下载JDK的在Linux系统中可解压的压缩包
这里我使用的是JDK的.tar.gz安装包
下面我们需要在远程服务器的目标目录下解压该安装包,首先需要使用 rz 命令将下载好的JDK的安装包上传进目标目录下,再使用 tar -zxvf jdk-8u151-linux-x64.tar.gz 进行解压,解压完成后,该目录下的文件如下
接下来需要配置环境变量,/etc目录下包含所有程序所需的配置文件,切换到该目录下打开profile文件,在文件中追加
export JAVA_HOME=/usr/src/java/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${PATH}
需要注意的是JAVA_HOME后面的值是JDK的文件路径
保存并退出后需要再输入命令使得新配置的环境生效
source /etc/profile
检查JDK配置是否生效
java -version
出现以下信息就表示JDK配置成功生效了

安装tomcat

首先下载tomcat安装包
使用解压命令解压tomcat
tomcat的启动需要Linux的操作系统上开放8080端口,且云服务器控制台也需要开启8080端口
进入到解压后的tomcat文件的bin目录下,运行./startup.sh 启动 tomcat
在本地的浏览器上地址栏输入 服务器ip地址:8080 就能访问到tomcat了

安装mysql

这里使用 yum 包管理器完成 MySQL 的安装
首先需要下载官方的mysql包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
安装mysql包
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装mysql服务
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 yum -y install mysql-community-server
启动mysql
systemctl start mysqld.service
查看运行状态
service mysqld status
进入mysql,输入密码
mysql -u root -p
修改密码策略和修改密码长度
set global validate_password_policy=0; set global validate_password_length=8;
修改 / 设置 MySQL 中 root 用户在本地登录时的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root/123';
刷新权限
FLUSH PRIVILEGES;

mysql远程连接

Mysql远程连接需要Linux的操作系统上开放3306端口,且云服务器控制台也需要开启3306端口
在Linux服务器中进入mysql服务,再切换到mysql系统数据库中执行以下命令,允许 root 用户远程连接数据库
将 root 用户的 host 字段从 localhost 更改为了 %,% 是一个通配符,代表任何主机,此时 root 用户不再局限于从服务器本机登录,而是可以从任何 IP 地址的任何电脑上远程登录。
update user set host = '%' where user = 'root';
刷新权限
FLUSH PRIVILEGES;
流程如下:
打开数据库远程连接工具输入ip和端口号,以及mysql的密码进行连接,这其中连接名可以随意起

编码配置

为防止乱码,我们需要更改mysql的编码配置
MySQL 的核心配置文件位于 /etc/my.cnf 或 /etc/mysql/my.cnf,找到后添加如下配置
  • 设置mysql客户端默认字符集为utf8[mysql]default-character-set=utf8
  • mysql服务端使用的字符集默认为8bit编码的latin1字符集,设置字符集为 utf8character-set-server=utf8

开启防火墙操作

开启防火墙,只开放必要端口,阻断所有非必要访问
防火墙状态检查
firewall-cmd --state
开启防火墙
systemctl start firewalld.service
开启防火墙开机自启动
systemctl enable firewalld.service
查看防火墙开放端口
firewall-cmd --list-ports;
防火墙对某一端口开放
firewall-cmd --zone=public --add-port=XXXX/tcp --permanent
当添加了开放的端口号,防火墙必须重启,重启防火墙服务
firewall-cmd --reload

部署Web项目

下面以Linux操作系统上对SSM聚合工程的部署举例

需要注意的是,当操作需要跨设备、跨局域网或跨互联网通信时,需要使用 IP 地址,那么项目中的请求路径 localhost 需替换为服务器 IP;数据库需要切换为远程数据库,不要忘记更改配置文件中对应的的数据库名称与密码;以及需要考虑跨系统兼容性,文件路径 Windows 用反斜杠 \ Linux 用正斜杠 /,以及文件名、路径大小写敏感的差异,Windows 不区分大小写,Linux 严格区分大小写。

更改完后找到 ham-parent 的右侧 maven 视图,对该工程进行打包,打包父工程执行 package

父工程打包成功后,所有子模块的打包也会自动全部打包好,将这三个war包上传到服务器的 tomcat 的 webapps 目录下

修改 tomcat目录/conf/server.xml,添加如下内容

<Service name="Catalina1"> <Connector port="8086" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina1" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> <Context docBase="ham-console-1.0-SNAPSHOT" path="/" reloadable="true"/> </Host> </Engine> </Service> <Service name="Catalina2"> <Connector port="8087" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina2" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> <Context docBase="ham-portal-1.0-SNAPSHOT" path="/" reloadable="true"/> </Host> </Engine> </Service> <Service name="Catalina3"> <Connector port="8085" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8012" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina3" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> <Context docBase="ham-file-1.0-SNAPSHOT" path="/" reloadable="true"/> </Host> </Engine> </Service>

开启防火墙,只开放必要端口,阻断所有非必要访问,开放该项目的8080、8085、8086、8087、3306 端口

查看 mysql 运行状态,须保持开启状态

service mysqld status

测试网络连通性, ping 140.143.223.245

进入 Tomcat 的 bin 目录执行 ./startup.sh 运行启动脚本

tomcat 启动成功后就可以访问该项目了,该项目的后台路径为:http://140.143.223.245:8086/index,前台路径为:http://140.143.223.245:8087/index,图片服务器路径为:http://140.143.223.245:8085/。

停止 tomcat 服务进入 Tomcat 的 bin 目录执行 ./shutdown.sh

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 21:19:28

57、外设总线概述

外设总线概述 即插即用规范 一些新的 ISA 设备板遵循特殊的设计规则,需要特殊的初始化序列,旨在简化附加接口板的安装和配置。这种板卡设计规范称为即插即用(PnP),它包含了一套用于构建和配置无跳线 ISA 设备的繁琐规则集。PnP 设备实现了可重定位的 I/O 区域,PC 的 BIO…

作者头像 李华
网站建设 2026/6/23 7:56:18

60、Linux内核源代码物理布局解析

Linux内核源代码物理布局解析 1. 内核源码目录结构概述 对大量的内核源代码进行结构化组织并非易事,开发者们也未遵循严格的规则。最初 drivers/char 和 drivers/block 的划分如今已效率低下,为满足不同需求,创建了更多的目录。不过,最通用的字符和块设备驱动仍位于 …

作者头像 李华
网站建设 2026/6/23 15:56:50

Google Apps Script OAuth2 库完整指南:轻松实现第三方服务集成

Google Apps Script OAuth2 库完整指南&#xff1a;轻松实现第三方服务集成 【免费下载链接】apps-script-oauth2 An OAuth2 library for Google Apps Script. 项目地址: https://gitcode.com/gh_mirrors/ap/apps-script-oauth2 Google Apps Script OAuth2 库是一个专门…

作者头像 李华
网站建设 2026/6/23 17:37:40

PySceneDetect完整指南:零基础掌握视频智能分割技术

PySceneDetect完整指南&#xff1a;零基础掌握视频智能分割技术 【免费下载链接】PySceneDetect :movie_camera: Python and OpenCV-based scene cut/transition detection program & library. 项目地址: https://gitcode.com/gh_mirrors/py/PySceneDetect PySceneD…

作者头像 李华
网站建设 2026/6/22 23:48:22

24、结合psad和fwsnort保障网络安全

结合psad和fwsnort保障网络安全 1. 网络攻击与响应机制 在网络环境中,我们经常会面临各种攻击。通过 tcpdump 工具可以捕获网络数据包,例如: [iptablesfw]# tcpdump -i eth0 -l -nn port 80 13:32:24.839585 IP 144.202.X.X.59651 > 71.157.X.X.80: S 653660994:65…

作者头像 李华
网站建设 2026/6/23 17:36:17

32、网络攻击欺骗与 fwsnort 脚本详解

网络攻击欺骗与 fwsnort 脚本详解 1. 攻击欺骗技术 在网络安全领域,攻击欺骗是一种重要的测试和攻击手段。通过 snortspoof.pl 脚本,我们可以利用 exploit.rules 文件中描述的规则来发送攻击。例如,使用以下命令进行数据包捕获: [spoofer]# tcpdump -i eth1 -l -n…

作者头像 李华