前后端分离项目部署 vue+mysql+flask
打包vue项目
npm run build
注意:
静态文件的路径配置
最笨方法:(找了很多网上的配置路径方法,都没解决)
先打包一遍,运行之后,找请求不到的静态文件请求路径是什么,再去本地项目中改,再次打包
缺点:
上线和本地不能同时满足
跨域
跨域最好让后端来做,这样打包之后不会出现各种各样的问题
比如,python后端
两行代码就解决了。
前端只需正常请求接口就可以了。
本地测试运行
npm i -g serve
cd dist
serve
项目配置的都没问题的话,这里就可以请求成功。
服务器安装nginx
nginx为反向代理,如果只是内网自己访问不需要配置nginx,可跳过此步。
查看是否有nginx
whereis nginx
安装nginx
npm install -y nginx
查看版本号
nginx -v
表示安装成功
启动nginx
nginx
访问服务器
以下界面即为启动成功
这里访问默认的是80端口,nginx服务器默认的是80端口,如果不能访问,大致有几种原因:
端口进程被占用
nginx未启动
nginx配置错误
服务器安全组未加入80端口
其中,端口进程被占用,如下:
查看当前进程
-
netstat -ntlp
-
或者
-
netstat -tunlp
杀掉进程
kill 52161
再次查看进程 如果80端口依然被占用 接着kill 直到没有80端口进程
启动 nginx
启动成功,访问服务器
停止nginx服务
nginx -s stop
重启nginx服务
nginx -s reload
修改nginx配置
找到配置文件存放位置
whereis nginx
此时 /etc/nginx 则是配置文件位置
cd /etc/nginx
nginx.conf 则是默认配置文件,编辑该文件
vim nginx.conf
可以看到默认端口是 80
可以更改默认端口---- i 切换到编辑模式 esc退出编辑模式 :wq 保存并退出 更多vim操作查文档
重启 nginx
此时再访问80端口就是报错,访问修改后的端口即可
再次查看配置文件,端口是修改后的了
修改网站的存放路径
假设是 /home/nmk/www/dist
再次重启nginx服务
因为访问的文件夹不存在,所以 404
此时,切换到 /home/nmk
cd :切换目录
ls :查看当前目录下的文件
新建www文件夹
mkdir www
再ls 就会多一个www文件夹
不需要创建dist文件,因为vue项目打包之后会自动放到dist文件中
前端项目上传
前端项目打包
npm run build
将文件夹上传至服务器的www文件夹下
---在cmd中操作就行
scp 文件路径 请求服务器 : 目标路径
如果上传失败,就把dist压缩再上传
访问服务器
不出意外的话,可以成功访问项目
出意外的话,比如:
403 无权限访问
切换到 /var/log/nginx
cd /var/log/nginx
vim error.log
可查看报错信息
可以看出index.html无权限访问
切换至 /home/nmk/www/dist
cd /home/nmk/www/dist
查看文件的访问权限用户
ll
切换至 /etc/nginx
cd /etc/nginx
编辑配置文件
vim nginx.conf
改为 root
重启nginx即可
404 未发现
(1)将路由模式改为hash
(2)修改nginx配置:
vim nginx.conf
重启即可
403 无权限
404 未找到
405 不可接受的请求方法
不允许静态文件响应POST请求,改为get请求
304 Not Modified
ETag:, 对比缓存,值没变,强制清除缓存即可,
200 请求无结果
但是如下
502 无法正常响应
其他的错误,在error.log中查看,去查相关解决办法
Access to XMLHttpRequest at 'http://192.168.1.104:70/mol' from origin 'http://192.168.1.104' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
这个是资源没有请求到,比如数据库资源,数据库没开启,并不是前后端接口跨域
以上出现的问题,总结:
-
nginx配置文件问题
-
后端接口问题
-
跨域问题
-
缓存问题
-
请求方法
-
路由模式
具体情况具体分析叭。遇到问题查就可以了。
数据库上传服务器
安装mysql
yum install mysql-server
安装mysql报“没有可用软件包 mysql-server”怎么办?
-
yum -y install wget
-
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
-
rpm -ivh mysql-community-release-el7-5.noarch.rpm
-
ls -1 /etc/yum.repos.d/mysql-community*
再次即可
yum install mysql-server
启动和关闭mysql
-
systemctl start mysql.service
-
systemctl stop mysql.service
确认是否启动成功
两种查看是否启动成功的⽅法
-
systemctl status mysql.service
-
-
sudo netstat -tap | grep mysql
即 启动成功
未启动
进入⼊MySQL shell界⾯
mysql -u root -p
输入密码 即可
输入 passwd 可重置密码
如果报错 自己找找解决办法
或者 mysql -u root -p 后
出现输入密码的时候 不要输入 直接回车 (我用的是此方法,进去了)
查看字符集----默认为 latinl
how variables like 'character%';
修改字符集
打开配置⽂件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
添加⼀⾏:
character_set_server=utf8
重启:
systemctl restart mysql.service
登录mysql查看当前设置的编码:
show variables like "char%";
可查看已修改为utf8
查看数据库
show databases;
如遇到
参考文章:
https://www.cnblogs.com/gyrgyr/p/6872972.html
切换到mysql数据库中
use mysql;
查看表
show tables;
新建表
类似下边这种结构---- 直接上传到已有表中也可,看需求
直接上传本地的会报错,因为服务器找不到本地的C盘D盘的目录。
因此先把本地slq文件上传到服务器中某一个文件下,
然后再导⼊sql⽂件
source /var/tmp/cids.sql
测试:
查询表结构:
desc 表名;
数据总条数:
SELECT COUNT(*) FROM 表名;
查出来都无误那就是成功了。
如下图,上传成功。
连接数据库
如遇到此错误
ERROR 1130: Host '192.168.10.173' is not allowed to connect to this MySQL ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
依次输入即可,如遇 ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 不予理会,
-
update user set host='%' where user='root';
-
flush privileges;
flask上传服务器
pyhon安装
下载Anaconda
sudo wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
可根据需要安装对应的版本
https://repo.anaconda.com/archive/
解压anaconda压缩包
bash Anaconda3-5.3.1-Linux-x86_64.sh
解压过程中会输入yes/no
如不理解 全yes
输入 python 测试是否安装成功
ctrl z 回车 退出python环境
上传本地项⽬
本地项目上传至服务器目录中
flask项目生成requirements.txt
安装
pip3 install pipreqs
使用步骤
1.在项目根目录下执行命令
-
pipreqs ./ # 报错就执行下面这条
-
pipreqs ./ --encoding=utf-8
2.可以看到生成了requirements.txt文件
服务器项目根目录执行:
pip install -r requirements.txt
如果运行之后提示某个包没找到
那就在当前目录下单独再安装下这个包
运行
python run.py
其他
pip版本升级
-
第一步: 先删除pip,命令: python -m pip uninstall pip
-
第二步: python -m ensurepip
-
第三步: python -m pip install --upgrade pip -i https://pypi.douban.com/simple 一定要加上镜像才能成功
安装pandas包
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
升级python版本
参考文章
http://www.cppblog.com/jack-wang/archive/2022/09/16/229423.html
python版本和软连接指向
参考文章
https://blog.csdn.net/qq_26003101/article/details/113765821
flask项目后台运行
在其他文章中看到
python run.py &
即可开启后台运行
但是我的项目没效果
我用的是这个
nohup python run.py </dev/null &>/dev/null &
关掉程序,后台一样可以运行
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfheaj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01