zoukankan      html  css  js  c++  java
  • Linux 下部署 Django 环境

    目录

    蓝鲸智云

    1. 安装基础环境
    2. 初始化 Python 项目
    3. 配置 uwsgi

    1、安装基础环境

    安装 Nginx 

    这里使用 Nginx 作为 web 服务器.

    yum install nginx

    安装结束执行命令启动 Nginx

    systemctl start nginx.service
    systemctl enable nginx.service

    安装 Python 环境<版本可以自由调换>

    安装python3.6

    yum install https://centos7.iuscommunity.org/ius-release.rpm -y 
    yum install python36u  -y
    yum install python36u-pip python36u-devel  -y

    为了pip速度更快一些,这里教大家配置一下 pip 的清华镜像

    先创建文件夹用来放配置文件

    mkdir ~/.config/pip/

    接着在文件内添加代码   /.config/pip/pip.conf

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple

     安装MySQL

    这里使用 --------MariaDB

    yum install mariadb mariadb-server -y 
    systemctl start mariadb.service
    systemctl enable mariadb.service

    完成后 输入如下命令执行数据库初始化 并设置 root 密码 <密码默认为空>

    mysql_secure_installation

    2、初始化python项目

    first 创建虚拟环境
    cd /home/
    mkdir django
    cd django
    python3.6 -m venv venv
    
    next 激活环境
    source venv/bin/activate
    
    next 安装 Django 初始化 项目
    pip install django
    django-admin startproject my
    cd my 
    python manage.py startapp mine

    3、创建App之后 需要修改settings.py的配置

    """
    Django settings for my project.
    
    Generated by 'django-admin startproject' using Django 2.0.5.
    
    For more information on this file, see
    https://docs.djangoproject.com/en/2.0/topics/settings/
    
    For the full list of settings and their values, see
    https://docs.djangoproject.com/en/2.0/ref/settings/
    """
    
    import os
    
    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    
    # Quick-start development settings - unsuitable for production
    # See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/
    
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = '^p3prd2a*$y-#n%jy2#@)setwu(1+yv#2kas4l*4r5_ss&+3zm'
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    
    ALLOWED_HOSTS = ['*']
    
    
    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    
    ROOT_URLCONF = 'my.urls'
    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
    WSGI_APPLICATION = 'my.wsgi.application'
    
    
    # Database
    # https://docs.djangoproject.com/en/2.0/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    
    
    # Password validation
    # https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
    
    AUTH_PASSWORD_VALIDATORS = [
        {
            'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
        },
    ]
    
    
    # Internationalization
    # https://docs.djangoproject.com/en/2.0/topics/i18n/
    
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    
    
    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/2.0/howto/static-files/
    
    STATIC_URL = '/static/'

    4、运行 

    python /home/django/my/manage.py runserver 0.0.0.0:80

    在无报错的情况下 在浏览器地址栏输入ip地址会出现相对于的界面

    5、配置 uwsgi

    deactivate
    这条命令指的是退出虚拟环境
    
    安装 uwsgi
    yum install gcc -y
    python3.6 -m pip install uwsgi
    
    安装成功后 执行下行代码 目的是用 uwsgi 来启动 Django
    uwsgi --http :80 --chdir /home/django/my --home=/home/django/venv --module my.wsgi
    
    这个时候 浏览器输入 ip 地址 看看是否显示 django 的测试页面
    
    配置 uwsgi
    创建一个目录来放置 django 的配置文件,并且在此目录下创建一个文件 uwsgi.ini
    mkdir -p /home/django_conf
    
    [uwsgi]
    socket = /home/django_conf/my.sock
    chdir = /home/django/my
    wsgi-file = my/wsgi.py
    plugins = python
    virtualenv = /home/django/venv/
    processes = 2
    threads = 4
    chmod-socket = 664
    chown-socket = nginx:nginx
    vacuum = true

    6、配置 Nginx

    接下来 创建 配置 Nginx 的配置文件
    
    进入nginx/conf.d/my.conf
    
    server {
        listen      80;
        server_name < IP 地址>;
        charset     utf-8;
    
        client_max_body_size 75M;
    
        location /media  {
            alias /home/django/my/media;
        }
    
        location /static {
            alias /home/django/my/static;
        }
    
        location / {
            uwsgi_pass  unix:///home/django_conf/my.sock;
            include     /etc/nginx/uwsgi_params;
        }
    }
    
    完毕后 重启 Nginx
    
    systemctl restart nginx.service

    7、最后一步 <持久运行 Django>

    配置 Supervisord ,确保 django 可以持久运行
    
    安装 Supervisord
    
    yum install python-pip -y
    安装完成后,使用 pip 来安装 supervisord,并输出配置文件
    
    python -m pip install supervisor
    echo_supervisord_conf > /etc/supervisord.conf
    并在配置文件(/etc/supervisord.conf)底部添加如下代码
    
    [program:my]
    command=/usr/bin/uwsgi --ini /home/django_conf/uwsgi.ini
    directory=/home/django/my
    startsecs=0
    stopwaitsecs=0
    autostart=true
    autorestart=true
    添加完成后,执行如下命令来启动 supervisord
    
    supervisord -c /etc/supervisord.conf
    最后-----------------------------可以访问 http://< IP 地址> 查看网站
  • 相关阅读:
    Vue 4.0及以上修改默认8080端口号
    EasyRTC进入会议室视频父组件传递数据给子组件显示为null的问题修复
    EasyRTC通过Golang缓存库fastcache实现在线用户存储在内存中加快速度
    视频远程通话系统EasyRTC 日志显示调用位置不正确如何优化?
    通过浏览器使用WebRTC时会话终止或断开都是什么原因?
    为什么我们要用BS架构来开发流媒体平台?
    TSINGSEE青犀视频流媒体平台为什么会存在跨域问题?
    EasyDSS/EasyNVR传输高清视频如何优化及节省带宽消耗?
    【解决方案】TSINGSEE青犀视频AI+智慧工地,助力工地安全生产
    【解决方案】TSINGSEE青犀视频助力危化企业安全生产,实现AI全流程监管
  • 原文地址:https://www.cnblogs.com/xiaolizikj/p/11700290.html
Copyright © 2011-2022 走看看