首先一个就是linux版本的选择,不同版本的linux安装步骤会不一样。我选择使用Ubuntu版本的,我是菜鸡我选简单的。
我们需要在Linux服务器上面安装我们本地开发中依赖的环境,包括JDK、Node.js(打包为静态文件部署的不需要安装)、Mysql、Redis(没用到的可以不管),Nginx,尽量选择和自己本地开发使用的版本一致的,避免兼容性问题。
windows远程连接linux云服务器的程序我使用FinalShell,这个就打开输入一下自己的云服务器ip地址和连接密码就欧克了,当然也可以选择其他方式连接不再赘述。
一、运行环境搭建
开始安装:
1、安装JDK
按照顺序在linux控制台执行以下三句命令就好了,java -version执行后能看到java的版本安装成功了。
//更新软件包列表
sudo apt update
//安装JDK17
sudo apt install openjdk-17-jdk -y
//检查安装是否成功
java -version
2、安装nodejs(选装,如果是打包静态文件部署,不需要安装)
//更新软件列表
sudo apt update
//安装curl
sudo apt install curl -y
//下载并安装对应版本nodejs
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
sudo apt install -y nodejs
//检查是否安装成功
node -v
npm -v
3、安装mysql
MySQL安全配置设不设置都行,如果要设置的话,设置内容包括设置 root 用户密码、移除匿名用户、禁止 root 用户远程登录、删除测试数据库、重新加载权限表。全部按Y就完事了。
//更新软件列表
sudo apt update
//安装MySQL
sudo apt install mysql-server
//启动MySQL服务
sudo systemctl status mysql
//配置mysql安全配置
sudo mysql_secure_installation
安装完成后还需要对MySQL进行一些配置
使用以下命令登录 MySQL:
sudo mysql -u root -p
创建新的 MySQL 用户(可选)
如果你不打算一直使用 root 用户来操作数据库,建议创建一个新的 MySQL 用户并赋予相应的权限。
(1).登录到 MySQL 后,执行以下命令来创建一个新的用户:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
将
username
替换为你想要创建的用户名,
password
替换为用户的密码。
(2).然后,你可以赋予该用户访问数据库的权限。例如,要为该用户赋予所有权限,可以执行:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
刷新权限表使更改生效:
FLUSH PRIVILEGES;
退出 MySQL:
EXIT;
允许 MySQL 从远程连接(可选)
默认情况下,MySQL 只允许本地连接。如果你希望允许从其他计算机进行远程连接,你需要编辑 MySQL 的配置文件并调整相关设置。8.0以上本吧MySQL的配置文件与旧版本不同
(1).打开 MySQL 配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
(2).找到
bind-address
配置行,默认情况下它通常是:
bind-address = 127.0.0.1
将其修改为:
bind-address = 0.0.0.0
这将允许来自任何 IP 地址的连接。如果你只希望特定的 IP 地址可以访问数据库,可以将
0.0.0.0
替换为该 IP 地址。
(1)保存文件并退出 (
Ctrl + X
,然后按
Y
和
Enter
)。
(2)重启 MySQL 服务使更改生效:
sudo systemctl restart mysql
需要注意的是,如果云服务器不放行3306端口号,和你本机的ip地址访问的话,你本地一样还是访问不到
4、安装redis
还是一样,按照顺序把命令执行完就行。
//更新软件包列表
sudo apt update
//安装redis
sudo apt install redis-server -y
//启动redis服务
sudo systemctl start redis
//设置redis开机自动启动
sudo systemctl enable redis
//检查redis运行状态
sudo systemctl status redis
5、安装Nginx
//更新软件列表
sudo apt update
//安装nginx
sudo apt install nginx
//启动nginx
sudo systemctl start nginx
//设置nginx开机自启动
sudo systemctl enable nginx
二、打包部署
1、前端打包部署
在前端项目目录下,使用命令打包
npm run build
打包完成后项目目录下会出现一个/dist文件夹啊
把这个文件夹的内容上传到云服务器/var/www/html目录下。
然后对Nginx /etc/nginx/sites-enabled/default文件路径为/进行配置。如果你vue前端地址为5173,后端地址为8080,那你直接按照我的配置就欧克
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/dist;#根据静态文件的目录位置配置默认为/var/www/html,我为了方便上传直接改为dist
# Add index.php to the list if you are using PHP
index index.html
server_name _;
location / {
try_files $uri $uri/ /index.html;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
}
# 后端 Spring Boot 接口代理
location /api/ {
proxy_pass http://localhost:8080/; # Spring Boot 后端地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Nginx实际上作用就和前端axios跨域请求代理是一样的
2、后端打包部署
首先我们需要根据服务器的mysql修改一下我们springboot 的配置文件application.yml,实际需要修改的就三行,以下放我的给你们做参考,请按照实际情况修改啊。
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
application:
name: DNSmartSystem
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/dnsmartsystem?characterEncoding=UTF-8&useSSL=false#端口号根据实际修改
username: root #用户名根据实际修改
password: 666666 #密码根据实际修改
data:
redis:
host: localhost
port: 6379
mybatis:
configuration:
map-underscore-to-camel-case: true #?????????????????
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
server:
port: 8080
logging:
level:
org.springframework.security: DEBUG
修改完成后,运行打包命令,我的是maven项目,打包命令为
mvn clean install -DskipTests
打包后之后直接上传到linux服务器,使用命令运行。
java -jar 文件名
如果需要后台运行的jar包的话,去搜一下linux screen怎么使用。
到此就部署完毕了,浏览器直接通过ip地址访问就可以进入你的网站了。
版权归原作者 挣扎少年 所有, 如有侵权,请联系我们删除。