精华内容
下载资源
问答
  • Django 部署到服务器

    千次阅读 2019-09-20 00:55:58
    Django 部署到服务器 背景 部署到阿里云ESC服务器 系统默认环境配置 Ubuntu 14.0 Python 2.7 Python 3.4 项目环境配置 Python 3.6 django 2.1.8 uwsgi nginx python第三方库: requests 注: ...

    Django 部署到服务器

    作者:Bright Xu

    背景

    • 部署到阿里云ECS服务器

    • 系统默认环境配置

      1. Ubuntu 14.0
      2. Python 2.7
      3. Python 3.4
    • 项目环境配置

      1. Python 3.6
      2. django 2.1.8
      3. uwsgi
      4. nginx
      5. python第三方库:
        requests
    • 服务器Python 3 默认为python 3.4,不能满足项目需求。所以需要额外安装python 3.6

    • 文件路径

      • python 3.6安装位置

        /usr/local/bin/python3.6
        
      • 项目位置

        /home/myWeb/myMusic
        
      • 虚拟环境

        /home/myWeb/myMusic/venv
        
      • static文件

        /home/myWeb/myMusic/collect_static
        
      • uwsgi配置

        /home/myWeb/website
        
      • nginx配置

        /etc/nginx/sites-available/myMusic.conf
        
      • 日志文件

        /home/myWeb/website/logs
        
        /var/log/nginx
        
    • 项目结构
      项目结构

    下载安装Python 3.6

    1. 转至下载目录:

      cd /usr/src
      
    2. 下载Python 3.6压缩包:

      wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
      
    3. 解压:

      tar xzf Python-3.6.8.tgz
      
    4. 进入Python-3.6.8 目录

      cd /usr/src/Python-3.6.8
      
    5. 编辑Python-3.6.8 目录下的Modules/Setup文件

      Python3.6安装pip时, 会报错:zipimport.ZipImportError: can't decompress data; zlib not available主要是由于系统默认配置有Python3.4 与之冲突

      所以要修改Setup文件,用于安装独立的pip 3.6。

      打开Modules/Setup文件,在第366行附近有一句 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz ,将这句开头的# 去掉,然后保存即可。

    6. 然后执行安装命令:

      make && make install
      
    7. python3 命令指向python3.6:

      系统默认是将python3 命令指向了python3.4 ,所以要修改。

      输入命令:

      update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.6.8
      
    8. python 3.6 安装完成后默认已经安装了pip,为了避免与系统默认的python 3.4的pip冲突,用pip3.6 命令进行安装第三方库。

    Virtualenv 虚拟环境安装

    pip安装第三方库时,使用国内的镜像下载的速度会比较快些,这里使用清华大学的镜像

    • 安装Virtualenv :

      pip3.6 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
      
    • 给项目创建一个虚拟环境:

      virtualenv --python=/usr/local/bin/python3.6 /home/myWeb/myMusic/venv
      

      注:我的项目存放在/home/myWeb/myMusic 虚拟环境的名是venv

    • 转到项目的位置

      cd /home/myWeb/myMusic
      
    • 启动虚拟环境

      source /home/myWeb/myMusic/venv/bin/activate
      
    • 在虚拟环境里安装第三方库

      • 安装uwsgi

        留意: uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。

        pip3.6 install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple
        
      • 安装requests

        pip3.6 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
        

        注:我的项目里用到了requests 库,所以要安装。

      • 安装django

        pip3.6 install django -i https://pypi.tuna.tsinghua.edu.cn/simple
        

        :由于pip默认安装的是最新版本的django,由于版本的不同运行项目时可能会报错。

      • 卸载已安装的django

        pip3 uninstall django
        
      • 安装django指定版本(2.1.8)

        pip3 install django==2.1.8 -i https://pypi.tuna.tsinghua.edu.cn/simple
        
    • 退出虚拟环境

      deactivate
      

    安装uwsgi

    留意: uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。

    pip3.6 install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    安装Nginx

    apt-get install nginx
    

    项目配置

    Django项目配置

    • setting.py文件相关配置
    1. ALLOWED_HOSTS

      ALLOWED_HOSTS = ['*']
      
    2. 关掉DEBUG。

      DEBUG = False
      
    3. static文件

      STATIC_ROOT = os.path.join(BASE_DIR, "collect_static")
      

      静态文件位置,我的设置在项目目录下的collect_static里(/home/myWeb/myMusic/collect_static

    • 相关迁移
    1. 进入虚拟环境

      cd /home/myWeb/myMusic/
      
      source /home/myWeb/myMusic/venv/bin/activate
      
    2. 迁移数据库

      python manage.py makemigrations
      
      python manage.py migrate
      
    3. static文件

      python manage.py collectstatic
      

      django会把所有的static文件都复制到STATIC_ROOT文件夹下。

    4. 创建超级管理员

      python manage.py createsuperuser
      

    uwsgi 配置

    • 新建相关文件夹

    • 站点配置文件夹

      mkdir /home/myWeb/website     # 站点配置文件,如uwsgi.ini, uwsgi.pid, 相关日志等
      
      mkdir /home/myWeb/website/logs      # 用于存放日志文件
      
      mkdir /home/myWeb/website/logs/uwsgi   # 用于存放uwsgi的运行日志文件
      
    • uwsgi配置文件

      1. /home/myWeb/website 下面新建uwsgi.ini 文件

        touch /home/myWeb/website/uwsgi.ini
        
      2. 写入uwsgi.ini配置文件

        [uwsgi]
        socket = 127.0.0.1:8000    // 用于连接nginx
        master = true         //主进程
        ;vhost = false          //多站模式
        ;no-site = true        //多站模式时不设置入口模块和文件
        workers = 4           //子进程数
        reload-mercy = 10
        vacuum = true         //退出、重启时清理文件
        max-requests = 5000
        limit-as = 512
        buffer-size = 30000
        
        home=/home/myWeb/myMusic/venv    //虚拟环境位置
        chdir=/home/myWeb/myMusic       //项目位置
        module=myMusic.wsgi:application    // 项目的wsgi.py
        
        pidfile = /home/myWeb/website/uwsgi.pid
        ;          //pid文件,用于后面的脚本启动、停止该进程
        daemonize = /home/myWeb/website/logs/uwsgi/uwsgi.log
        ;         // 日志文件
        

        uwsgi.ini 文件需要根据自己的项目情况进行配置。

    Nginx配置

    1. 新建文件夹和文件
    • 日志文件夹

      mkdir /home/myWeb/website/logs/nginx
      
    • 站点配置文件myMusic.conf

      touch /etc/nginx/sites-available/myMusic.conf
      
    1. 写入站点配置文件myMusic.conf

      server {
          listen      80;    # 监听80端口
          server_name   39.96.75.223  *.brightxu.xyz;    # 用户访问网站的网址,可以是ip地址和域名
          charset     utf-8;
          client_max_body_size 75M;
      
          access_log  /home/myWeb/website/logs/nginx/host.access.log;    # 访问日志文件位置
          error_log  /home/myWeb/website/logs/nginx/error.log;    # 错误日志文件位置
      
          location /static {
              alias /home/myWeb/myMusic/collect_static;    # 静态文件的位置,要与项目的setting.py里的STATIC_ROOT一致
          }
      
          location / {
              uwsgi_pass  127.0.0.1:8000;    # 这个值要与前面uwsgi.ini的配置一致
              include     /etc/nginx/uwsgi_params;
          }
      }
      
      
    2. 激活站点

      ln -s /etc/nginx/sites-available/myMusic.conf /etc/nginx/sites-enabled/myMusic.conf
      

    启动站点

    1. 启动uwsgi

      uwsgi --ini /home/myWeb/website/uwsgi.ini
      
    2. 启动nginx

      nginx
      

    其他命令

    • uwsgi

      • 查看进程

        ps -ef | grep uwsgi
        
      • 启动

        uwsgi --ini /home/myWeb/website/uwsgi.ini
        
      • 停止

        killall -9 uwsgi    # 关闭进程
        
        uwsgi --stop /home/myWeb/website/uwsgi.pid
        
      • 重启

        uwsgi --reload /home/myWeb/website/uwsgi.pid
        

        注:上面的uwsgi.pid文件对应uwsgi.inipidfile的设置

    • nginx

      • 查看进程

        ps -ef | grep nginx
        
      • 启动

        nginx
        
        service nginx start
        
      • 停止

        nginx -s quit      # 完整有序的停止nginx
        
        nginx -s stop      # 快速停止nginx
        
        killall -9 nginx    # 关闭进程
        
        service nginx stop
        
      • 重启

        nginx -s reload    # 修改配置后重新加载生效
        
        nginx -s reopen    # 重新打开日志文件
        
        service nginx reload
        

    阿里云安全组规则

    为了安全起见,阿里云一般默认80端口是关闭的,所以默认下不能通过域名直接访问。因此需要手动为80端口添加一个入站规则。

    • 新建一个安全组规则(入站方向)

      授权策略:允许

      授权对象:0.0.0.0/0

      端口范围:80/80

      优先级:1

    相关代码

    展开全文
  • 存档日期:2019年4月18日 | 首次发布:2009年4月7日 Django是一个基于Python的开源... 但是,此服务器不适合在生产环境中使用,因此需要进一步的步骤才能将Django应用程序部署到Web。 在本文中,您将了解Django框...

    django部署到服务器

    存档日期:2019年4月18日 | 首次发布:2009年4月7日

    Django是一个基于Python的开源Web应用程序框架,致力于简化创建数据库驱动的Web站点和Web应用程序的过程。 开发Django应用程序的入门很简单,因为该框架包含开发Web服务器。 但是,此服务器不适合在生产环境中使用,因此需要进一步的步骤才能将Django应用程序部署到Web。 在本文中,您将了解Django框架以及如何在本地计算机上安装它。 探索Django应用程序的制作方式以及为您的应用程序创建的自动管理界面。 然后,您将找到如何在运行Apache和mod_python的服务器上将Django应用程序部署到Web上。 最后,了解Django应用程序如何以及应该随着应用程序需求的增长而扩展。

    此内容不再被更新或维护。 全文以PDF格式“按原样”提供。 随着技术的飞速发展,某些内容,步骤或插图可能已更改。

    翻译自: https://www.ibm.com/developerworks/opensource/library/os-django/index.html

    django部署到服务器

    展开全文
  • django部署到服务器后admin后台管理样式无法加载问题解决 在项目中创建static文件夹,并在settings.py中添加static路径: STATIC_ROOT = os.path.join(BASE_DIR, 'static') 执行python manage.py collectstatic...

    django部署到服务器后admin后台管理样式无法加载问题解决

    在项目中创建static文件夹,并在settings.py中添加static路径:

    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    

    执行python manage.py collectstatic命令搜集静态文件

    python manage.py collectstatic
    

    在nginx配置文件中配置static

        # Django的静态static文件路径
        location /static {
            alias /home/project/***/static;
        }
    

    重新启动uwsgi 和nginx

    nginx -s reload  或者  service nginx restart
    uwsgi --reload uwsgi.pid
    
    展开全文
  • 我用Apache部署django但它无法读取静态文件它会导致404 not foundstatic|----static| |----css| |----img| |----js||----static-only| |---css|---admin这是我的静态结构:这是我的Django项目settings.py^{pr2}$...

    我用Apache部署django

    但它无法读取静态文件

    它会导致404 not foundstatic

    |----static

    | |----css

    | |----img

    | |----js

    |

    |----static-only

    | |---css

    |---admin

    这是我的静态结构:

    这是我的Django项目settings.py

    ^{pr2}$

    apache设置:

    /etc/httpd/conf.d/django.confAlias /static /home/openuser/tryDjango/static

    Require all granted

    Require all granted

    WSGIDaemonProcess testproject python-path=/home/openuser/tryDjango/src:/home/openuser/tryDjango/lib/python2.7/site-packages

    WSGIProcessGroup testproject

    WSGIScriptAlias / /home/openuser/tryDjango/src/tryDjango/wsgi.py

    我发现如果我使用:Alias /static/static_only /home/openuser/tryDjango/static/static_only

    static-only下的文件可以读取

    但这次访问仍有问题:STATICFILES_DIRS=(os.path.join(os.path.dirname(BASE_DIR),"static","static"),)

    展开全文
  • 参考一篇不错的博客
  • django部署到Ubuntu服务器 环境: python:3.6.5 django: 1.11 mysql :Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using EditLine wrapper Ubuntu: 18.04.1 LTS uwsgi和nginx为下载默认版本 原文地址: ...
  • Nginx+uWSGI+Django部署web服务器

    万次阅读 多人点赞 2018-08-28 14:33:08
    Nginx+uWSGI+Django部署web服务器 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py 编辑luffy/luffy/urls.py 运行并测试 uWSGI部署...
  • 乌班图16.04虚拟机下,简单的djang项目上线nginx服务器
  • 开发环境开发语言: Python后台框架:Djangoweb 服务器:nginxwsgi 服务器:uwsgi云服务器系统:Ubuntu查看本地项目 Django 和 Python 版本:(可以直接安装 Django 最新版本就可以了,Python 版本不能低于 3.4)...
  • Django部署Window服务器

    2021-03-30 14:38:26
    首先在manage.py 目录下新建 run.py ... os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") uvicorn.run( "web.asgi:application", host="0.0.0.0", port=8000, log_level="debug", .
  • Windows上Python3.6环境django部署到Apache服务器

    万次阅读 热门讨论 2017-07-05 19:55:00
    python版本:python3.6.1 64位 python3.6中django部署到Apache服务器中 python3中mod_wsgi.so问题 mod_wsgi.so找不 部署django django版本:django 1.11.2 django部署到Apache服务器中 Apache版本:2.4.26 64位
  • django部署服务器

    2019-05-05 18:04:05
    django部署服务器 操作系统:阿里云服务器 操作步骤:1.安装pip(用python3.5) 第一步需要更新 sudo apt-get update 第二步需要安装 sudo apt-get install python3-pip 2. 安装虚拟环境 第一步需要进入root命令...
  • 部署django到nginx服务器
  • django部署到Apache服务器

    万次阅读 2013-06-19 21:32:53
    1、下载mod_wsgi.so :...将下载的mod_wsgi.so 拷贝至apache安装目录下的modules目录下。 2、打开django工程所在的目录,新建wsgi文件: 在工程下新建文件:django.wsgi,记事本打开输入以下内容: import os impo
  • django 部署到Apache服务器

    千次阅读 2014-03-17 21:30:35
    3,首先说明一点,django自带的服务器只能用于开发测试,并不能发布供别人访问,所以要发布其他的服务器上,这里我选择了apache 4,一开始我选择mod_Python 插件,经过数百次失败的经历我放弃,经查发现该插件...
  • 主要介绍了Nginx+Uwsgi+Django 项目部署到服务器的思路,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • GOOD article Ubuntu 10.04 下django 部署到apache服务器 - webdancer's Blog Ubuntu 10.04 下django 部署到apache服务器 - webdancer's BlogUbuntu 10.04 下d...
  • django nginx 服务器部署

    2017-06-23 18:52:32
    django 部署到服务器,常用的是apache2服务器和nginx服务器。本文记录django在nginx服务器上的部署。在网络上找到大量的文档,但是都是坑,不完整,太费劲。 我按照这篇文档一步不漏的去做,终于成功部署。...
  • django项目部署到服务器

    万次阅读 2018-05-18 11:02:16
    如何在阿里云上部署 Django 应用程序概述与目的此帖介绍了如何(利用 Ubuntu 操作系统)在阿里云上启动和部署 Django 应用程序。这两个流程的详细步骤说明如下所述:● 使用阿里云管理控制台启动您的第一个 Linux ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,827
精华内容 8,730
关键字:

django部署到服务器