• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

前后端分离项目部署 vue+mysql+flask

武飞扬头像
吞掉星星的鲸鱼
帮助1

打包vue项目

npm run build

注意:

静态文件的路径配置

最笨方法:(找了很多网上的配置路径方法,都没解决)

先打包一遍,运行之后,找请求不到的静态文件请求路径是什么,再去本地项目中改,再次打包

学新通

缺点:

上线和本地不能同时满足

跨域

跨域最好让后端来做,这样打包之后不会出现各种各样的问题

比如,python后端

学新通

两行代码就解决了。

前端只需正常请求接口就可以了。

本地测试运行

  1. 安装服务器

npm i -g serve
  1. 进入打包好的dist文件夹

cd dist
  1. 运行

serve

项目配置的都没问题的话,这里就可以请求成功。

服务器安装nginx

nginx为反向代理,如果只是内网自己访问不需要配置nginx,可跳过此步。

查看是否有nginx

whereis nginx
学新通

安装nginx

npm install -y nginx

查看版本号

nginx -v 
学新通

表示安装成功

启动nginx

nginx

访问服务器

以下界面即为启动成功

学新通

这里访问默认的是80端口,nginx服务器默认的是80端口,如果不能访问,大致有几种原因:

端口进程被占用

nginx未启动

nginx配置错误

服务器安全组未加入80端口

其中,端口进程被占用,如下:

学新通

查看当前进程

  1.  
    netstat -ntlp
  2.  
    或者
  3.  
    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.

这个是资源没有请求到,比如数据库资源,数据库没开启,并不是前后端接口跨域

以上出现的问题,总结:

  1. nginx配置文件问题

  1. 后端接口问题

  1. 跨域问题

  1. 缓存问题

  1. 请求方法

  1. 路由模式

具体情况具体分析叭。遇到问题查就可以了。

数据库上传服务器

安装mysql

yum install mysql-server

安装mysql报“没有可用软件包 mysql-server”怎么办?

  1.  
    yum -y install wget
  2.  
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  3.  
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
  4.  
    ls -1 /etc/yum.repos.d/mysql-community*

再次即可

yum install mysql-server

启动和关闭mysql

  1.  
    systemctl start mysql.service
  2.  
    systemctl stop mysql.service

确认是否启动成功

两种查看是否启动成功的⽅法

  1.  
    systemctl status mysql.service
  2.  
     
  3.  
    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' 不予理会,

  1.  
    update user set host='%' where user='root';
  2.  
    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.在项目根目录下执行命令

  1.  
    pipreqs ./ # 报错就执行下面这条
  2.  
    pipreqs ./ --encoding=utf-8

2.可以看到生成了requirements.txt文件

服务器项目根目录执行:

pip install -r requirements.txt

如果运行之后提示某个包没找到

那就在当前目录下单独再安装下这个包

运行
python run.py

其他

pip版本升级

  1.  
    第一步: 先删除pip,命令: python -m pip uninstall pip
  2.  
    第二步: python -m ensurepip
  3.  
    第三步: 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
系列文章
更多 icon
同类精品
更多 icon
继续加载