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 地址> 查看网站
  • 相关阅读:
    go语言Notepad++简易开发环境搭建(windows)
    openssl AES加密以及padding
    为什么数据库要读写分离
    关于查询服务器文件是否过期的分析
    linux 禁止指定账号ssh登陆
    libmemcached upcoming ISO C++ standard, C++0x
    keepalived安装配置(nginx)
    php连接mysql报错No such file or directory
    linux命令行下使用R语言绘图
    纯真IP数据库导入mysql
  • 原文地址:https://www.cnblogs.com/xiaolizikj/p/11700290.html
Copyright © 2011-2022 走看看