栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

阿里云使用宝塔+nginx+uwsgi部署django

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

阿里云使用宝塔+nginx+uwsgi部署django

  1. 在本地django运行环境下,执行如下代码:生成依赖文件
pip freeze > requirements.txt

这一步非常重要!!!后面云服务器上创建django项目时需要用到此文件安装项目依赖!!!
2. 购买阿里云服务器,配置centos7.6镜像,同时配置安全组,确保一些必要软件使用的端口被放行,如mysql,nginx等。
3. 配置宝塔面板,登录,下载左栏的推荐软件一键安装(重要!!!)
4. 在软件商店中下载python项目管理器(注意,安装ubuntu系统的没有办法下载,因为这个软件目前只支持centos)
(以上三步均可以在网上找到相应的教程,自行配置!!!)
5. 点击宝塔面板左侧的安全一栏,放行一些后面需要的端口(如创建站点时的端口,创建django项目时的端口)
6. 点击宝塔面板左侧的数据库一栏,创建数据库(略,自己在网上找教程,简单)
7. 点击宝塔面板左侧的网站一栏,开始创建站点

8.创建站点成功后,点击根目录文件,开始上传django项目文件


9. 修改settings.py文件


  1. 修改urls.py文件
  2. 点击宝塔面板首页一栏,鼠标滑到下方,点击python项目管理器,首先是安装python环境,选择你本地django项目运行时的python版本就好。安装好后,创建项目
  3. 创建好项目后,会在项目根目录下自动创建一个yyy_env的文件夹,在终端命令下,执行如下代码(最新版宝塔用这个命令,不要再用其他教程里老版的了,会报错!!!):
source /www/server/py/izone-1-1/md5命名的文件夹/lib/python3.8/venv/scripts/common/actiovate

之后会进入到虚拟环境中,然后执行:

python manage.py collectstatic

就会将静态文件创建到一个之前设置好的文件名,我这里时static
参照链接 宝塔部署Django(Navicat传数据)
13. 创建好项目后,点击宝塔面板的网站一栏,点击站点名称,点击配置文件,进行修改。

location / {
      include uwsgi_params;
      uwsgi_pass 127.0.0.1:9002;  #端口要和uwsgi里配置的一样
      uwsgi_param UWSGI_SCRIPT myproject.wsgi;  #wsgi.py所在的目录名+.wsgi
      uwsgi_param UWSGI_CHDIR /www/wwwroot/xxx.xxx.xxx.xxx/; #项目路径
    }
    location /static {
      alias /www/wwwroot/xxx.xxx.xxx.xxx/static; #静态资源路径
    }
  1. 修改完配置后,重启nginx(在首页最下方nginx软件点进去就可以重启)

最后就可以在浏览器里通过我们的公网ip+python项目创建时使用的端口号来访问我们的django项目啦:
xxx.xxx.xxx.xxx:9002/admin/

其他一些细节问题, 如:

  1. 部署时settings.py里设置debug=false,注意这里出现了一些问题,设置为debug=false后,无法找到静态资源了,所以需要在全局urls.py中设置下面这句:
urlpatterns = [
    path('admin/', admin.site.urls),
    path('simpleui_captcha/', include('simpleui_captcha.urls')),
    path('api/', include(router.urls)),
    path('exportexcel/', views.export_excel),
    re_path(r'^ckeditor/', include('ckeditor_uploader.urls')),
    re_path(r'^static/(?P.*)$', serve,{'document_root': settings.STATIC_ROOT}, name = 'static'), # 这句!!!
    re_path(r'^media/(?P.*)$', serve,{"document_root": settings.MEDIA_ROOT}),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
  1. 每次修改django里的代码后都要重启python项目管理器里的项目
  2. 每次修改网站的站点里的配置文件后,都要重启nginx
  3. 最后附上django官方文档,现在觉得官方文档最靠谱,最开始可以参考网上的教程来操作,但如果发现按照网上的教程一步一步来之后,仍然出错,而且这个错误按照网上教的方法怎么解决都解决不好时,一定要想到去找官方文档看下!!!
    django关于项目部署时静态资源如何处理的官方文档
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964795.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号