【宝塔面板】centOS部署前后端分离所有遇到的坑,Django

1:刚刚买完服务器,在宝塔面板安装完一切工具,Django顺利运行后(不能运行一般是起了中文名)

#  问题:想迁移数据库,结果发现-bash: python3: command not found
# 解决:系统版本的Python是3.7.8 卸载不了,所以你只需要安装个3.7.2的版本即可,迁移命令后python的命令变为:/root/.pyenv/versions/3.7.2/bin/python -V





#
问题:命名安装完依赖包为什么输入/root/.pyenv/versions/3.7.2/bin/python manage.py 报错了:No module named 'django'
# 解决 因为你需要进入到虚拟环境中去执行: PS:manage.py文件找不到的话就要指定到绝对路径
  1:source /www/wwwroot/项目名/虚拟环境名vevn(就是你存放依赖库的文件夹)/bin/activate # 进入虚拟环境
  2:python3 manage.py makemigrations # 迁移数据库
3: python3 manage.py migrate # 生成迁移文件 ‘




# 问题1-1:Nginx使用静态文件不渲染?/只渲染media 不渲染static? (这个问题属于前端不分离)

# 解决:
首先你需要先收集下静态文件:
  1:source /www/wwwroot/项目名/虚拟环境名vevn(就是你存放依赖库的文件夹)/bin/activate    # 进入虚拟环境
  2: python /www/wwwroot/项目名/manage.py collectstatic # 收集静态文件
  nginx反向代理添加 后面不加/

                       location /static {
                          alias /static;
                         }


                       location /media {
                           alias /www/wwwroot/daily_fresh-master/media;   # 这个需要自己测试下  没用的话 就写/static 这个路径是定位在你对应的目录文件夹下
                         }





# 问题1-2:admin使用静态文件?只用uwsgi返回静态文件即可:(这个问题针对前后端不分离部署,分离项目不需要看这个问题)
  

# 解决:
   首先你需要先收集下静态文件:
  1:source /www/wwwroot/项目名/虚拟环境名vevn(就是你存放依赖库的文件夹)/bin/activate    # 进入虚拟环境
  2: python /www/wwwroot/项目名/manage.py collectstatic # 收集静态文件
   我的服务器是收集在根目录下所以我的静态文件路径是/static,uwsgi配置在最后配置:
  static-map = /static=/static # 最后等号后面配置静态文件收集路径,media需要后面测试,是否是写media-map=/media=收集路径或者项目的media路径





# 致命问题:uwsgi配置了http = 0.0.0.0:8000端口为什么浏览器访问不到接口:
# 解决
  因为你需要打开宝塔面板的安全模块:接着放行8000端口,这样子就可以访问到了,但是这是测试阶段的,部署完uwsgix跟nginx后配合的端口,最好需要关闭其他放行端口
 

2:配置问题

#  uwsgi配置问题?耗时几天决定改用gunicorn启动后端服务器
# 解决(后端启动):
  1:在安装完虚环境后进入虚拟环境安装gunicorn: source命令进入虚拟环境后安装:pip install gunicorn 或者再项目管理器里面直接安装模块
  2:进入项目管理器启动即可
 




# 问题:前端的静态文件与后端的静态文件以及media用户的静态文件如何处理
#  解决:
1:将前端编译好的文件夹dist复制到django的/static下,在nginx里面制定好前端静态文件夹的访问路径:

 

 

 

 

 

 

 

 


 


 


 

 

# 问题:反向代理需要设置django路由的访问路径:

# 解决:

    假设我的路由接口都是以api开头:url(r"api/order/cancel$",order_cancel.OrderCancel.as_view()),

 

      宝塔面板-网站-设置-反向代理:

      

 

 

 

 

 

 

 

 

3:大概流程

1:上传前端编译文件与后端文件夹,注意将前端编译文件夹放到django的/static下(这是为了方便管理前端跟后端的静态文件不冲突相同名)
2:创建django项目后,项目管理器安装gunicorn依赖包,运行起来,如果报错请看报错日志
4:创建并添加站点,打开设置-配置文件:修改root 下的静态文件夹路径 添加静态文件路径/static/ 与/media/配置  这是用于浏览器访问的时候返回给静态文件
5:4完成后,打开反向代理,添加后端访问路径前缀(这里需要看你的路由请求前缀标志)我的是/api/路径 修改后就完成了整个部署

PS:部署新手最大的坑:后端的路径必须要有一个统一的标志,不然会跟前端的路由起冲突,这样子nginx就不知道去找谁拿数据或者网页了

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍“宝塔面板mysql无法启动问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“宝塔面板mys...
这篇文章主要介绍“Docker中如何安装宝塔”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Docker中如何安装宝塔”文...
最近发现在宝塔的日志下看到很多垃圾支柱来爬行,这些垃圾蜘蛛爬行的日志很干扰我对于日志数据的查阅,今天查询了下关于宝塔面板下nginx屏蔽垃圾蜘蛛禁止抓取不影响火车头发布的方法,分享给大家去做下学习。希望对你
最近网站更换了服务器,安装了宝塔面板,安装好以后发现安装管理网站还是非常的直观方便的,但是有一点让我折腾了好久,那就是网站设置伪静态固定连接后,总是出现404错...
最近一段时间网站经常出现链接数据库错误,当然原因很简单,卡着了。查看宝塔面板发现负载状态经常是100%,内存使用率也是100%,CPU也不用说了,所以在网上查找...
本站之前有发表过两篇文章来通过宝塔面板优化服务器性能,《如何降低宝塔面板内存和CPU使用率,降低运行负载》以及《宝塔面板通过设置虚拟内存降低内存使用率及负载状态...
复制移动剪切的目录中不能有中文,否则会出错
不管是本地主机还是虚拟主机安装面板都是不能直接用生成的外网ip打开, windows替换ip成127.0.0.1 Linux替换ip成localhost 就可以访问了。
一键清除绑定限制 rm -f /www/server/panel/data/bind.pl
教你使用宝塔计划任务启动laravel调度器
宝塔面板是目前广受用户喜爱的服务器控制面板之一,很多用户的网站都是基于宝塔面板搭建,今天简单介绍下宝塔面板是如何安装WordPress的,方便新手用户快速部署。一、安装宝塔插件大部分使用宝塔面板的用户可能还不知
阿里云的ecs服务器(linux)安装宝塔
华为云服务器搭建宝塔Linux控制面板
新手使用阿里云esc服务器安装宝塔linux面板建站图文教程
购买完阿里云服务器后使用宝塔linux的搭建
【小白必看保姆级搭建个人网站】使用阿里云服务器与宝塔Linux快速建站
忘记宝塔密码,可以通过以下命令重置密码 cd /www/server/panel && python tools.py panel testpasswd 如果提示多次登录失败,暂时禁止
阿里云服务器部署Django项目(Linux服务器、宝塔、纯新手)1.前言
宝塔快速部署Django项目1、宝塔快速部署Django项目1、软件商店搜索python,安装`python项目管理器`2、python项目管理器>项目管理>添加项目3、映射域名4、更改网站项目地址5、完成2、常见问题与解决方法1、宝塔快速部署Django项目1、软件商店搜索python,安装python
Python的语法十分简洁,简洁到只需要一行代码,即可输出意想不到的效果。一行代码到底有什么独特的魅力,下面一起来感受一下吧!1、画一个爱心作为一个Python程序员,自从接触Python就有种爱不释手的感觉,逐渐地被它的简洁高效的代码所吸引,所有我想用一行Python代码来画出一个心形向Python