Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
    • WordPress 插件及主題下載
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

Linux 下部署 Django 环境

Linux 下部署 Django 环境

2018-09-29 Comments 0 Comment

安装基础环境

任务时间:时间未知

安装 Nginx

在本教程中,我们使用 Nginx 作为 Web 服务器。

执行如下命令来安装 nginx

yum install nginx

安装完成后,执行如下命令来启动 Nginx

systemctl start nginx.service
systemctl enable nginx.service

安装 Python 环境

本实验以 Python 最新版 , Python 3.6 为基础开发。

首先,我们来安装 Python 3.6

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

配置 Python PIP 的清华镜像

为了提升依赖的下载速度,这里我们使用清华提供的镜像源

首先,我们来创建文件夹,用于存储我们的配置文件

mkdir ~/.config/pip/

然后在文件内添加如下代码

示例代码:/root/.config/pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

安装 MySQL

首先,我们来安装 MySQL ,这里我们使用的是 MySQL 的一个发行版 —— MariaDB 。

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

安装完成后,执行如下命令来进行 mariadb 的初始化,并根据提示设置 root 的密码(默认密码为空)

mysql_secure_installation

初始化 Python 项目

任务时间:时间未知

初始化虚拟环境

为了不影响外界环境的清洁,所以我们使用虚拟环境来配置 Django 项目

cd /home/
mkdir django
cd django
python3.6 -m venv venv

创建完成后,执行命令,进入虚拟环境

source venv/bin/activate

然后在虚拟环境中安装 django 并初始化项目

pip install django
django-admin startproject my
cd my 
python manage.py startapp mine

预览项目

创建完成 App 后,我们需要修改 my/settings.py 使 Django 能处理来做所有域名中的请求

示例代码:/home/django/my/my/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/'

修改完成后,执行如下命令来启动 Django 的测试服务器。

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

这时,你可以访问 http://<您的 CVM IP 地址> 查看预览界面

配置 Uwsgi

任务时间:时间未知

安装 Uwsgi

执行如下命令,退出虚拟环境。

deactivate

接下来,我们来安装配置 Uwsgi

yum install gcc -y
python3.6 -m pip install uwsgi

测试 Uwsgi

执行如下命令,测试使用 uwsgi 来启动 django

uwsgi --http :80 --chdir /home/django/my --home=/home/django/venv --module my.wsgi

此时,你可以访问 https://<您的 CVM IP 地址> ,确认是否可以查看到 django 的测试页面。

可以看到后,按下 Ctrl + C ,退出 uwsgi 进程。接下来我们来配置 Uwsgi。

配置 Uwsgi

首先,我们来创建一个目录用于存放 Django 的配置文件

mkdir -p /home/django_conf

然后在这个目录下创建一个文件 [uwsgi.ini].

示例代码:/home/django_conf/uwsgi.ini
[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

这里的 nginx:nginx 是 nginx 自己的用户组和用户名

配置 Nginx

配置完成 Uwsgi 后,我们来创建 Nginx 的配置文件(/etc/nginx/conf.d/my.conf)

示例代码:/etc/nginx/conf.d/my.conf
server {
    listen      80;
    server_name <您的 CVM 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

配置 Supervisord

接下来,我们来配置 Supervisord ,确保我们的 django 可以持久运行

首先,我们要安装 pip ,用来安装 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://<您的 CVM IP 地址> 查看网站

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 按一下即可分享至 Skype(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
  • 點這裡列印(在新視窗中開啟)

相關


教學資源

Post navigation

PREVIOUS
基于 CentOS7.2 的 Django 环境搭建
NEXT
基于 CentOS 快速搭建 OpenResty

發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
ESET NOD32
WINDOWS 10 &11 INSIDER PREVIEW
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
金融資訊
WhatsApp Stickers教學
WordPress資訊
WeChat資訊
PHP資訊
Plesk資訊
TensorFlow
教學資源
開源程序
網頁工具
SEO工具
醫療健康
旅遊及消閒
其他資訊
Content from
Content to
2018 年 9 月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
« 8 月   10 月 »

分類

  • 網站公告
  • 限時免費
  • ESET NOD32
  • WINDOWS 10 &11 INSIDER PREVIEW
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WhatsApp Stickers教學
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • Plesk資訊
  • TensorFlow
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 旅遊及消閒
  • 其他資訊

彙整

近期文章

  • 保姆級教程12306官方詳解如何用積分“免費坐高鐵” 2023-03-31
  • 挖礦毫無意義NVIDIA解釋為何賣礦卡:客戶願意花錢我們管不著 2023-03-31
  • 吃日料、聽京劇庫克時隔3年再訪中國 2023-03-31
  • 華為淨現金下滑至1763億元孟晚舟稱財務狀況依然穩健 2023-03-31
  • 任天堂Switch 2不會遠了開發者已收到新主機開發工具 2023-03-31
  • NASA太陽動力學觀測站捕捉到從太陽爆發的強烈耀斑 2023-03-31
  • 科學家發現製造原子級薄金屬層的簡單方法 2023-03-31
  • 華為發布2022年年度報告孟晚舟現場談壓力和信心 2023-03-31
  • 不要錯過:NASA將於4月3日揭曉Artemis II登月宇航員 2023-03-31
  • 新藥可”二合一”治療心力衰竭和睡眠呼吸障礙 2023-03-31

熱門文章與頁面︰

  • DP vs HDMI 誰才是遊戲玩家最佳選擇?
  • ESET NOD32 LICENSE KEY (UPDATED 2023-01-17)
  • Autodesk AutoCAD 2021 正式版註冊版-簡體/繁體中文/英文版
  • 打車叫到特斯拉不會開門很尷尬?官方介紹開關門方法
  • Explorer Patcher:讓Windows 11恢復Windows 10的行為特徵
  • 世界上有多少個國家
  • 盜版Windows 7還能免費升級Windows 10嗎?
  • 38歲985文科碩士被迫送外賣本人再發聲:已脫下孔乙己長衫應聘道士被拒
  • 4款家用血糖儀、尿酸儀對比評測
  • 一鍵GHOST v2020.07.20 正式版-硬盤版/光盤版/優盤版/軟盤版

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2023   All Rights Reserved.