在阿里云服务器上部署Spring Boot + Vue项目

本文档详细介绍了在CentOS系统中安装MySQL、设置YUM源、配置防火墙及远程访问,以及安装JDK、设置环境变量的过程。接着,演示了如何部署SpringBoot应用和前端Vue项目,包括上传安装包、后台运行、配置Nginx代理。此外,还涵盖了前端Vue项目的打包、上传和通过Nginx部署的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、安装mysql

1.1 安装

1.1.1 下载并安装mysql的YUM源

 

(1)下载mysql的YUM源

wget -P /home/lisonglin http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

 

  1. 安装mysql的YUM源

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

 

  1. 检查mysql的YUM源是否安装成功

yum repolist enabled | grep "mysql.-community."

 

  1. 查看当前启用的 mysql版本

yum repolist enabled | grep mysql

 

1.1.2 安装MySQL

 

yum install mysql-community-server

 

安装过程中一直输入"y"就可以了

 

1.1.3 测试

(1)启动mysql服务

systemctl start mysqld

 

(2)登录mysql

mysql -uroot

 

如果出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

则说明mysql安装完后给root用户生成了一个默认密码,所以你需要使用密码登录。

 

(3)查看mysql生成的默认密码并登录

 

为了加强安全性,MySQL5.7为root用户随机生成了一个密码,如果安装的是RPM包,则默认是在/var/log/mysqld.log中。

 

查看默认密码

grep 'temporary password' /var/log/mysqld.log

 

mysql -uroot -p 回车 然后输入默认密码即可登录myql

 

1.1.4 mysql服务用到的命令

 

systemctl start mysqld #启动mysqld

 

systemctl stop mysqld #停止mysqld

 

systemctl restart mysqld #重启mysqld

 

systemctl enable mysqld #设置开机启动

 

systemctl status mysqld #查看 MySQL Server 状态

 

1.1.5 设置密码

 

mysqladmin -u root password 'new-password'

 

或set password for 'root'@'localhost' = password('123456');

 

设置完密码之后就可以使用mysql -u root -p 命令来登录mysql数据库了

 

1.1.6防火墙设置

 

远程访问 MySQL, 需开放默认端口号 3306.

 

firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --permanent --zone=public --add-port=3306/udp

 

执行firewall-cmd --reload使最新的防火墙设置规则生效

 

1.1.7远程访问设置

(1)创建一个普通用户 xx ,密码是xxx

CREATE USER 'xx'@'%' IDENTIFIED BY 'xxx';

 

(2)给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问

GRANT SELECT,INSERT,UPDATE,DELETE ON . TO 'xx'@'%';

 

(3)创建一个管理员用户 admin 账号 ,密码是 123456

CREATE USER 'admin'@'%' IDENTIFIED BY '123456';

 

(4)给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。

GRANT ALL PRIVILEGES ON . TO 'admin'@'%';

 

(5)设置用户 root 可以在任意 IP 下被访问:

grant all privileges on . to root@"%" identified by "新密码";

 

(6)设置用户 root 可以在本地被访问:

grant all privileges on . to root@"localhost" identified by "新密码";

 

(7)使授权立刻生效

flush privileges;

 

1.1.8设置字符集

 

一般的,为了支持中文,我们应该将字符集设为 UTF-8, 执行SHOW VARIABLES LIKE 'character%';

 

查看当前 MySQL 字符集,默认服务器的字符器是 latin1 ,对中文不友好。修改 /etc/my.cnf 文件,添加字符集的设置

 

[mysql]

 

default-character-set = utf8

 

[mysqld]

 

character_set_server = utf8

 

重启 MySQL ,可以看到字符集已经修改了

 

1.1.9 默认配置文件路径:

配置文件:/etc/my.cnf

日志文件:/var/log//var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid

 

1.1.10 查看mysql默认读取的my.cnf

mysql  --help | grep  'my.cnf'

mysql --help|grep 'my.cn

命令mysql --help|grep 'my.cnf' 查看mysql默认读取的my.cnf,按照从前到后的优先级排序,前面的不存在,则读取后面的。通常配置在/etc/my.cnf。

 

1.2 问题

1.2.1 centos8.2安装mysql时报错Error:Unable to find a match: mysql-community-server

 

 命令:

yum install -y mysql-community-server

 报错:

Error:Unable to find a match: mysql-community-server

 

解决:

先禁用本地的 MySQL 模块安装即可

 

yum module disable mysql

yum -y install mysql-community-server

 

1.2.2 本地电脑连接不到阿里云服务器数据库

设置允许某数据库账号从某ip(或全部ip)连接mysql服务器

 

(1)允许test用户使用密码Aa@123456从任何主机连接到mysql服务器

GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'Aa@123456' WITH GRANT OPTION;

 

FLUSH   PRIVILEGES;

 

(2)允许test用户使用密码Aa@123456从192.168.1.2主机连接到mysql服务器

GRANT ALL PRIVILEGES ON *.* TO 'test'@'192.168.1.2' IDENTIFIED BY 'Aa@123456' WITH GRANT OPTION;

 

FLUSH   PRIVILEGES;

 

(3)允许test用户使用密码Aa@123456从192.168.1.2主机连接到mysql服务器的health库

GRANT ALL PRIVILEGES ON health.* TO 'test'@'192.168.1.2' IDENTIFIED BY 'Aa@123456' WITH GRANT OPTION;

 

FLUSH   PRIVILEGES;

 

 

1.3 参考文献

(1)wget命令:http://man.linuxde.net/wget

(2) centos8.2安装mysql时报错:https://www.cnblogs.com/heyongboke/p/14034688.html

 

  • 二、安装jdk

 

2.1 yum安装jdk

  1. 执行命令查看可安装Java版本

yum -y list java*

 

 (2)选择一个Java版本进行安装,这里我们希望安装Java1.8,因为我们的机器是64位的,所以选择安装java-1.8.0-openjdk-devel.x86_64。

注意:这里有个地方要注意,要选择-devel的安装,因为这个安装的是jdk,而那个不带-devel的安装完了其实是jre。执行命令安装jdk。

yum install -y java-1.8.0-openjdk-devel.x86_64

 

执行完后会看见控制台刷出很多输出。耐心等待至自动安装完成。

 

  1. 输入命令查看已安装的jdk版本

java -version

 

  1. jdk安装地址。你可以在/usr/lib/jvm目录下找到。

 

2.2 设置jdk环境变量

linux系统中的设置方法为:找到文件 /etc/profile ,向其中添加如下代码:

 

export JAVA_HOME=/usr/lib/jvm/java-1.8.0

export CLASSPATH=$JAVA_HOME/lib/

export PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

 

2.3 参考文献

(1)安装jdk

 https://blog.youkuaiyun.com/m0_37828989/article/details/107177145

(2)设置jdk环境变量

https://blog.youkuaiyun.com/Mou_Yang/article/details/102137861

 

  • 三、部署SpringBoot项目

3.1 上传安装包

使用sftp功能上传文件(mac)。命令:

put 本地文件路径 远程路径

 

3.2 后台运行安装包

 nohup java  -jar xxx.jar &

 

其他命令:

  1. 查看java进程

  ps -ef | grep java

  1. 杀死进程

 kill -9   java进程号

 

3.3 参考文献

(1)上传安装包

https://jingyan.baidu.com/article/ae97a64672d076fbfc461d29.html

(2)安装

https://blog.youkuaiyun.com/Mou_Yang/article/details/102137861

https://blog.youkuaiyun.com/qq_44373419/article/details/107980983

 

  • 四、 部署前端vue项目

4.1 安装环境

4.1.1 安装nodejs命令

cd /usr/src

wget http://nodejs.org/dist/v0.10.18/node-v0.10.18.tar.gz

 

4.1.2 安装nginx

// (1)安装nginx

sudo yum install nginx -y

// (2)启动nginx

nginx

// (3)把nginx配置成全局命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

// (4)查看nginx配置文件位置

nginx -t

// (5)查看nginx启动状态

ps -ef | grep nginx

// (6)重启nginx

nginx -s reload

 

4.打包、上传和部署项目

4.2.1 使用npm run build进行打包

4.2.2 上传dist安装包

使用sftp功能上传dist文件(先压缩一下)(mac上)

4.2.3 设置nginx参数

vim etc/nginx/nginx.conf

 

配置案例如下:


    server {

        # ip1 和 port1 分别为前端项目端口和所在的阿里云服务器ip
        listen       port1;
        server_name  ip1;


        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;


        location / {

            # 前端vue项目安装包(dist文件夹)所在的地址,举例如下
            root /usr/src/app/dist/;
            try_files $uri $uri/ /index.html;
            index index.html;

        }    


         # 设置服务转发地址,其中 /api/ 为前端项目为后端服务配置的统一接口前缀。没有接口前缀        时,此处为 /
        location /api/ {
            # ip2 和 port2 分别为后端项目端口和所在的阿里云服务器ip
            proxy_pass http://ip2:port2/;
        }


        error_page 404 /404.html;
            location = /40x.html {
        }


        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

    }

 

 

4.2.4 上传新包后,Nginx 重启

nginx  -s  reload

 

4.3 参考文献

(1)https://blog.youkuaiyun.com/qq_36538012/article/details/100218214

(2)https://blog.youkuaiyun.com/qq_43743661/article/details/110821510

(3)https://blog.youkuaiyun.com/wnx_52055/article/details/105302304

(4)https://blog.youkuaiyun.com/weixin_43638968/article/details/109636044

 

 

<think>好的,我需要帮助用户在Ubuntu系统上部署运行Spring BootVue的全栈项目。首先,我得理清整个部署流程,确保前后端都能正确配置运行。 用户提到的是前后端分离的项目,所以后端前端应该是独立部署的。根据引用内容,后端使用Spring Boot前端使用Vue,可能需要Nginx作为Web服务器。我需要分步骤指导用户安装必要的环境,配置项目,最后部署运行。 首先,后端需要JavaMaven。根据引用[1],在Ubuntu上安装openjdk-11-jdkMaven是正确的。用户可能需要执行sudo apt install命令来安装这些依赖。然后,用户需要获取后端代码,可能通过Git克隆或者上传代码到服务器。接着,使用Maven打包后端应用,生成JAR文件,并用java -jar命令运行,如引用[2]提到的。 然后处理前端部分。Vue项目需要Node.jsnpm,所以需要指导用户安装这些。用户可能还需要安装Yarn。安装完成后,进入Vue项目目录,安装依赖,然后构建生产环境的静态文件。构建完成后,这些静态文件需要部署到Web服务器,比如Nginx。引用[3]提到使用nohup运行后端,但前端可能需要配置Nginx来服务静态文件并代理API请求到后端。 接下来是配置Nginx。用户需要安装Nginx,然后修改配置文件,设置root指向Vue的dist目录,并配置反向代理到后端的Spring Boot应用,比如代理/api到localhost:8080。这样前端可以通过Nginx访问后端API。 测试部分需要确保后端运行在指定端口,比如8080,Nginx运行在80端口。用户可能需要开放防火墙端口,或者检查安全组设置(如果是在云服务器如阿里云ECS上)。 最后,可能需要指导用户使用nohup或systemd来守护进程,确保应用在终端关闭后仍运行。引用[3]提到了使用nohup,所以可以建议用户使用nohup java -jar命令运行后端,并将日志输出到nohup.out。 需要验证每个步骤的命令是否正确,比如JavaMaven的安装命令,Nginx的配置语法是否正确,以及路径是否正确。同时,提醒用户注意可能遇到的常见问题,比如端口冲突、依赖缺失、文件权限问题等。 生成的相关问题应该围绕部署中的其他方面,比如性能优化、HTTPS配置、自动化部署等,这些是用户后续可能会关心的问题。</think>### 分步指南:Ubuntu部署Spring BootVue全栈项目 #### 1. 安装基础依赖 **后端依赖**: ```bash sudo apt update sudo apt install -y openjdk-11-jdk maven git # Java环境与构建工具[^1] ``` **前端依赖**: ```bash curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - # 添加Node.js源 sudo apt install -y nodejs sudo npm install -g yarn # 可选,若项目使用yarn[^2] ``` #### 2. 部署Spring Boot后端 1. **获取代码并构建**: ```bash git clone <后端仓库地址> cd spring-boot-project mvn clean package # 生成target/your-application.jar ``` 2. **运行后端**: ```bash nohup java -jar target/your-application.jar & # 后台运行并输出日志到nohup.out[^3] tail -f nohup.out # 实时查看日志 ``` - 默认端口为`8080`,可在`application.properties`中修改`server.port` #### 3. 部署Vue前端 1. **获取代码并构建**: ```bash git clone <前端仓库地址> cd vue-project npm install # 或使用yarn install npm run build # 生成dist/目录 ``` 2. **配置Nginx**: ```bash sudo apt install -y nginx sudo vim /etc/nginx/sites-available/your-domain.conf ``` 配置文件内容: ```nginx server { listen 80; server_name your-domain.com; # 替换为域名或IP # 静态文件服务 location / { root /path/to/vue-project/dist; try_files $uri $uri/ /index.html; } # 反向代理API请求 location /api { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 启用配置并重启Nginx: ```bash sudo ln -s /etc/nginx/sites-available/your-domain.conf /etc/nginx/sites-enabled/ sudo nginx -t # 检查语法 sudo systemctl restart nginx ``` #### 4. 验证部署 - **后端验证**: ```bash curl http://localhost:8080/api/health ``` - **前端访问**: 浏览器访问`http://your-domain.com`,确保页面加载且API请求正常。 #### 5. 高级配置(可选) - **HTTPS**:使用Certbot申请免费SSL证书 ```bash sudo apt install certbot python3-certbot-nginx sudo certbot --nginx ``` - **进程守护**:使用systemd管理Spring Boot服务 创建`/etc/systemd/system/springboot.service`: ```ini [Unit] Description=Spring Boot App After=syslog.target [Service] ExecStart=/usr/bin/java -jar /path/to/your-application.jar User=ubuntu Restart=always [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl daemon-reload sudo systemctl start springboot ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值