ubuntu 22.04 配置springboot+vue+nginx(出码生成)项目运行环境
准备工作:VMware
系统镜像:ubuntu-22.04.1-live-server-amd64.iso
安装教程:https://blog.csdn.net/qq_41779565/article/details/127061039
一、jdk-1.8环境配置
sudo apt-get install openjdk-8-jdk
#查看安装版本
java -version
二、maven环境配置
sudo apt-get -y install maven
#查看安装版本
mvn -v
#配置文件路径
#/usr/share/maven/conf
三、安装mysql8.0
sudo apt-get install mysql-server-8.0
#查看安装版本
mysql -V
#/etc/mysql/mysql.cnf
#mysql管理员默认账号和密码
#sudo cat /etc/mysql/debian.cnf
#查看mysql状态
service mysql status
1、修改 /etc/mysql/mysql.conf.d/mysqld.cnf
配置文件,
找到[mysqld]
,在下面增加忽略大小写敏感、允许空密码登录配置
lower_case_table_names=1
#设置空密码后可能无法登录,使用空密码登录,修改密码后需删除该配置,重启mysql
skip-grant-tables
开启远程访问:找到并注释下面bind-address
、mysqlx-bind-address
配置
# bind-address = 127.0.0.1
# mysqlx-bind-address = 127.0.0.1
2、重新初始化MySQL
sudo service mysql stop
sudo rm -rf /var/lib/mysql/
sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
sudo mysqld --initialize --user=mysql --lower-case-table-names=1 --skip-grant-tables
sudo service mysql start
3、创建mysql用户并授权
#设置skip-grant-tables属性后,使用root空密码登录
mysql -u root -p
#关闭主库只读属性
set global read_only=0;
flush privileges;
#修改管理员账号
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;
#查看用户列表
select user,host,account_locked,password_expired from mysql.user;
#创建用户并授权
create user 'myuser'@'%' identified by 'mypassowrd';
GRANT all privileges ON *.* TO 'myuser'@'%';
flush privileges;
#修改密码
ALTER USER 'myuser'@'%' IDENTIFIED BY '123456';
flush privileges;
4、移除 /etc/mysql/mysql.conf.d/mysqld.cnf
中的skip-grant-tables
属性并重启mysql
service mysql restart
5、mysql数据库备份和还原
mysql -u myuser -p
create database genDbName;
#数据还原
use genDbName;
source /home/enzo/db.sql;
#查看是否还原成功
show tables;
#数据备份
mysqldump -h127.0.0.1 -P3306 -umyuser -p genDbName > /home/enzo/genDbName_20230630.sql
四、安装nginx
sudo apt-get install nginx
#查看nginx版本
nginx -v
修改nginx进程权限,找到user www-data
修改为user root
vim /etc/nginx/nginx.conf:
# user www-data;
user root;
nginx文件安装完成之后的文件位置:
/usr/sbin/nginx:主程序 /etc/nginx:存放配置文件 /usr/share/nginx:存放静态文件 /var/log/nginx:存放日志
nginx常用命令
#启动nginx服务命令1
sudo systemctl start nginx.service
#启动nginx服务命令2
sudo service nginx start
#关闭nginx服务命令
sudo service nginx start
#查看nginx状态
sudo systemctl status nginx.service
#重启服务
sudo systemctl restart nginx.service
#关闭nginx进程
pkill -9 nginx
#重新加载nginx配置文件
sudo nginx -s reload
五、安装nvm
下载并解压nvm
https://nvm.uihtm.com/
sudo mkdir /home/software/nvm
cd /home/software/nvm
sudo wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gz
sudo tar -zxvf v0.39.1.tar.gz
#文件夹授权
sudo chmod -R 777 /home/software/nvm
配置nvm环境变量,修改etc/profile
文件,增加以下配置
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist
export NVM_HOME=/home/software/nvm/nvm-0.39.1
[ -s "$NVM_HOME/nvm.sh" ] && \. "$NVM_HOME/nvm.sh" # This loads nvm
[ -s "$NVM_HOME/bash_completion" ] && \. "$NVM_HOME/bash_completion" # This loads nvm bash_completion
使配置生效
source /etc/profile
查看nvm版本
nvm -v
#查看可安装版本
nvm ls-remote
#查看已安装版本
nvm ls
安装node16.14.2
nvm install v16.14.2
node -v
安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm -v
安装pnpm
npm install -g pnpm
pnpm -v
六、项目部署
若项目文件夹路径存在中文或空格,请重命名
sudo apt-get install unzip
cd /home/enzo
unzip -o projectName.zip
后端源码目录
/home/enzo/projectName/dc_base
后端应用启动脚本
/home/enzo/projectName/dc_base/bin/start.sh
后端部署文件目录
/home/enzo/projectName/dc_base/target
后端数据库配置文件
/home/enzo/projectName/dc_base/src/main/resources/application.yml
前端源码目录
/home/enzo/projectName/source-code-web-template
前端部署文件
/home/enzo/projectName/source-code-web-template/dist
1、后端项目编译
cd /home/enzo/projectName/dc_base
mvn clean install
cd bin
sh start.sh
项目默认端口为9933
访问项目接口文档地址:
http://192.192.192.75:9933/doc.html
2、前端项目编译
cd /home/enzo/projectName/source-code-web-template
pnpm install
pnpm run build
3、nginx代理配置
sudo vim /etc/nginx/conf.d/projectName.conf
添加以下代码
server {
listen 81;
server_name localhost;
port_in_redirect off;
location / {
#前端页面路径
root /home/enzo/project/source-code-web-template/dist;
index index.html;
}
location ^~/api/ {
#后端接口代理地址
proxy_pass http://localhost:9933/;
}
location /source/web {
#前端demo页面路径
alias /home/enzo/project/common_web_demo/web;
}
location ^~/source/ {
#demo后端接口代理地址
proxy_pass http://localhost:9933/;
}
}
重新加载nginx配置
nginx -s reload
访问服务器地址测试测试项目是否能正常访问
http://192.192.192.75:81/文章来源:https://uudwc.com/A/EBGZY
七、防火墙
#安装防火墙
sudo apt-get install ufw
#启动防火墙
sudo ufw enable
#查看防火墙状态
sudo ufw status
#开放端口
sudo ufw allow 3306/tcp
sudo ufw allow 80/tcp
sudo ufw allow 81/tcp
sudo ufw allow 9933/tcp
查看端口开放情况文章来源地址https://uudwc.com/A/EBGZY
sudo apt-get install net-tools
#查看端口占用情况,查看是否仅127.0.0.1
netstat -anp | grep 3306