一、前言

《Web 应用项目开发》是软件技术专业核心必修课程,前导依托《Java 程序语言设计》《MySQL 数据库》《Spring Boot 应用开发》《Vue.js 前端框架技术》四门基础课程。整个课程从后端 Java 基础、数据库设计,到 Spring Boot 接口开发、Vue 前端页面搭建,完整覆盖 Web 项目全栈开发流程。

在课程学习过程中,我最大的感受是:能在本地 IDEA 跑通项目只是入门,真正考验综合能力的是环境配置、本地调试、云端上线部署。很多同学代码写得没问题,但一到部署就各种报错:端口占用、数据库远程连不上、配置环境不统一、防火墙拦截、Nginx 反向代理失效等。

为了巩固课程知识、梳理学习思路,我整理了本次 Web 项目本地开发环境配置 + 云服务器环境搭建 + 项目部署上线 + 常见报错避坑全套流程,既是课程学习总结,也方便后续复习,同时给同专业同学做一份可直接参考的实战教程。

二、课程所学技术栈整体回顾

本次 Web 项目开发与部署用到的所有技术,全部来自课堂所学内容:

  1. 后端:Java、Spring Boot 框架、Maven 项目管理
  2. 数据库:MySQL 8.0 数据库设计、表结构创建、权限配置
  3. 前端:Vue.js 框架、前后端接口联调
  4. 部署工具:CentOS 服务器、JDK 环境、Nginx 反向代理、nohup 后台运行

整个学习链路遵循:语法基础→框架使用→本地开发→环境配置→项目打包→云端部署,也是企业实际开发中的标准流程。学好环境配置和部署,是从课堂作业走向真实项目开发的关键一步。

三、本地开发环境详细配置

3.1 本地必备环境版本

想要部署不出错,第一步就是本地与云端环境版本保持一致,这是课程老师反复强调的重点。

  • 开发工具:IntelliJ IDEA
  • 编译环境:JDK 1.8 / JDK17
  • 项目构建:Maven 3.8+
  • 数据库:MySQL 8.0
  • 项目框架:Spring Boot 2.x/3.x、Vue2/Vue3

3.2 Maven 镜像环境配置

很多人项目依赖下载慢、依赖报错,根源是 Maven 未配置国内镜像。打开 Maven 的settings.xml,配置阿里云镜像源:

xml

<mirrors>
    <mirror>
        <id>aliyunmaven</id>
        <name>阿里云公共仓库</name>
        <url>https://maven.aliyun.com/repository/public</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

配置完成后重启 IDEA,重新加载项目依赖,依赖下载速度会大幅提升,也能避免版本冲突。

3.3 Spring Boot 多环境配置(核心技巧)

课程中学习了 Spring Boot 多环境配置,分为开发环境 dev、生产环境 prod,本地用 dev,云部署用 prod,互不干扰。

  1. 主配置文件 application.yml

yaml

spring:
  profiles:
    active: dev
  1. 本地开发配置 application-dev.yml

yaml

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/web_db?useSSL=false&serverTimezone=UTC
    username: root
    password: 123456
  1. 云端生产配置 application-prod.yml

yaml

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://服务器IP:3306/web_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
    username: root
    password: 服务器数据库密码

学习心得:分开配置环境,不用每次部署都改代码,极大减少出错概率,这是 Web 开发必须掌握的编程技巧。

3.4 本地项目打包测试

课程实操要求将 Spring Boot 项目打成 Jar 包,步骤如下:

  1. IDEA 右侧打开 Maven → clean → package
  2. 等待打包完成,在 target 目录生成 jar 包
  3. 本地 cmd 测试运行:
java -jar 项目名.jar --spring.profiles.active=prod

本地能正常启动、访问接口、页面正常显示,再上传服务器部署,避免把本地 BUG 带到线上。

四、云服务器部署前期环境配置

我使用阿里云轻量应用服务器,CentOS 7.9 系统,是学生课程部署最常用的服务器环境。

4.1 服务器安全组与防火墙配置

部署失败头号原因:端口没放行

  1. 阿里云控制台安全组放行端口:22、80、8080、3306
  2. 服务器关闭防火墙或放行对应端口
# 临时关闭防火墙
systemctl stop firewalld
# 开机不自启
systemctl disable firewalld

4.2 服务器安装 JDK 环境

Spring Boot 项目运行依赖 JDK,执行命令安装:

yum install -y java-1.8.0-openjdk-devel
java -version

输出版本号即代表安装成功,保证和本地 JDK 版本一致。

4.3 服务器安装配置 MySQL8.0

  1. 安装 MySQL 并开机自启
systemctl start mysqld
systemctl enable mysqld
  1. 设置远程访问权限(关键)
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

学习心得:本地 MySQL 默认仅本地访问,云服务器必须开启远程权限,否则项目无法连接数据库,这是部署必踩知识点。

4.4 服务器安装 Nginx

为了实现通过 80 端口直接访问项目,配置 Nginx 反向代理:

yum install -y nginx
systemctl start nginx
systemctl enable nginx

五、Web 项目云端完整部署步骤

5.1 上传 Jar 包到服务器

可使用 FileZilla 工具可视化上传,把本地 target 下的 jar 包上传到服务器自定义目录,如/usr/local/webproject/

5.2 后台运行项目(防止关闭终端停止服务)

使用 nohup 命令后台运行,日志自动输出:

cd /usr/local/webproject
nohup java -jar 项目.jar --spring.profiles.active=prod > log.out 2>&1 &

查看进程是否启动:

ps -ef | grep java

5.3 Nginx 反向代理配置

编辑 Nginx 配置文件,实现公网 IP 直接访问项目:

server {
    listen 80;
    server_name 服务器公网IP;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

校验配置并重启 Nginx:

nginx -t
systemctl restart nginx

配置完成后,直接在浏览器输入服务器公网 IP,即可访问完整 Web 项目。

六、部署常见问题及解决方案(课程学习重点总结)

  1. 本地能跑,云端启动失败原因:数据库 URL 时区参数缺失、未加允许公钥检索参数。解决:在数据库连接 URL 拼接 serverTimezone=UTC&allowPublicKeyRetrieval=true

  2. 项目启动成功,网页无法访问原因:安全组未放行端口、服务器防火墙未关闭、Nginx 未启动。解决:检查阿里云安全组、关闭防火墙、重启 Nginx。

  3. 关闭 SSH 窗口项目就停止原因:直接前台运行 jar。解决:使用 nohup 后台运行,守护进程不随终端关闭而终止。

  4. MySQL 远程连接失败原因:未授权远程访问、3306 端口未放行。解决:执行授权语句,安全组开放 3306 端口。

七、课程整体学习心得体会

通过本次《Web 应用项目开发》课程从本地环境配置到云服务器完整部署的全过程实操,我收获了很多课堂书本以外的实战经验。

首先,我真正理解了前导课程的衔接意义:Java 是基础、MySQL 是数据支撑、Spring Boot 是后端核心、Vue 是前端展示,缺少任何一门课程的基础,都无法独立完成完整 Web 项目开发与部署。

其次,环境配置是 Web 开发的基本功。很多时候不是代码写错,而是版本不统一、配置不规范、端口未放行、权限未开启。养成规范的多环境配置、统一版本管理、提前本地打包测试的习惯,能极大减少部署报错。

再次,部署能力是从学生走向初级开发工程师的必备能力。只会写代码不会部署,只能停留在课堂作业;能独立完成环境搭建、项目打包、云端上线、问题排错,才算真正掌握 Web 全栈开发能力。

最后,在排查各种部署报错的过程中,我的独立排错能力、命令行操作能力、服务器基础运维能力都得到了很大提升。后续我也会继续深入学习 Docker 容器部署、自动化部署等进阶技术,夯实专业基础,为今后实习和就业做好准备。

八、结语

Web 项目本地与云端环境配置部署,是软件技术专业学生必须掌握的核心实战技能。本次学习不仅巩固了 Spring Boot、Vue、MySQL、服务器运维等知识点,也让我养成了规范开发、规范配置、提前测试、循序渐进的编程思维。希望本篇学习心得能帮助同班同学少走部署弯路,大家一起在 Web 开发道路上共同进步!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐