<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DevOps技术分享 &#187; Django</title>
	<atom:link href="http://www.showerlee.com/archives/category/programming/django/feed" rel="self" type="application/rss+xml" />
	<link>http://www.showerlee.com</link>
	<description>与你共同学习运维开发</description>
	<lastBuildDate>Mon, 19 Oct 2020 05:51:41 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>CentOS7.4部署Python3+Django+uWSGI+Nginx</title>
		<link>http://www.showerlee.com/archives/2590</link>
		<comments>http://www.showerlee.com/archives/2590#comments</comments>
		<pubDate>Fri, 20 Apr 2018 10:18:53 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[NGINX]]></category>
		<category><![CDATA[uwsgi]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=2590</guid>
		<description><![CDATA[安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"> </span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="font-size:16px;color:#337FE5;">安装环境</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Remote: CentOS 7.4 x64 (<a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a>.example.com)
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Python: Python3.6.5
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Django: Django 2.0.4
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	nWSGI:&nbsp;&nbsp;<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>-2.0.15
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Nginx:&nbsp; nginx-&nbsp;1.10.2-1.el6
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"> </span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><strong>一. 系统环境配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1.关闭iptables和selinux</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# su - root
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># setenforce 0</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># vi /etc/sysconfig/selinux</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	修改
</p>
<pre class="prettyprint lang-bsh">SELINUX=disabled</pre>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;color:#337FE5;">2.添加本地host DNS</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># vi /etc/hosts</span>
</p>
<pre class="prettyprint lang-bsh">127.0.0.1    <a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a>.example.com</pre>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="font-size:16px;color:#337FE5;"><strong>二. Python配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1.安装python3.6.5源及依赖包</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># yum install epel-release -y</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum groupinstall "Development tools" -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel zx-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel libffi-devel -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2.编译安装python3.6.5以及pip package manager</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# wget <a href="https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz" rel="nofollow">https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz</a> --no-check-certificate
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# tar xf Python-3.6.5.tar.xz
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd Python-3.6.5
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# make &amp;&amp; make altinstall
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">3.安装virtualenv</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;pip3.6 install --upgrade pip
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;pip3.6 install virtualenv
</p>
<div>
</div>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><strong>三. Nginx配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1. 安装nginx package</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum install nginx -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2.配置nginx with nWSGI</span>
</p>
<p>
	#&nbsp;vi /etc/nginx/conf.d/<a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a>.conf
</p>
<pre class="prettyprint">server {
&nbsp; &nbsp; listen<span> </span> 80;
&nbsp; &nbsp; server_name&nbsp; django.example.com;&nbsp;&nbsp;

&nbsp; &nbsp; charset utf-8;

&nbsp; &nbsp; access_log&nbsp; /var/log/nginx/django_access.log;
&nbsp; &nbsp; error_log&nbsp; &nbsp;/var/log/nginx/django_error.log;
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; location = /favicon.ico { access_log off; log_not_found off; }

&nbsp; &nbsp; location /static/ {
&nbsp; &nbsp; &nbsp; &nbsp; root /usr/share/nginx/html/django.example.com;
&nbsp; &nbsp; }

&nbsp; &nbsp; client_max_body_size 20M;
&nbsp; &nbsp;&nbsp;
&nbsp; &nbsp; location / {
&nbsp; &nbsp; &nbsp; &nbsp; include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_params;
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_pass&nbsp; &nbsp; &nbsp; unix:/etc/<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>/<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>-django.sock;
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_read_timeout 30s;
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>_send_timeout 30s;
&nbsp; &nbsp; }

}
</pre>
<p>
	
</p>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><strong>四. Django+uWSGI配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1. uWSGI配置</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# mkdir -p /etc/<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# vi /etc/<a href="http://www.showerlee.com/archives/tag/uwsgi" title="查看uwsgi中的全部文章" class="tag_link">uwsgi</a>/uwsgi-django.ini
</p>
<pre class="prettyprint">[uwsgi]
project = django.example.com
base = /data/www

chdir = %(base)/%(project)
home = %(base)/%(project)/.py3env
module = myproject.wsgi:application

pidfile = /tmp/uwsgi-master-django.pid

master = true
processes = 2
enable-threads = true

# use unix socket because it is more secure and faster than TCP socket
socket = /etc/uwsgi/uwsgi-django.sock
chmod-socket = 660
uid = nginx
gid = nginx

vacuum = true
die-on-term = true

logto = /var/log/nginx/uwsgi-django.log</pre>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2. 配置Django base folder</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd /usr/share/nginx/html
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# mkdir django.example.com
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd <span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">django.example.com</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# virtualenv -p /usr/local/bin/python3 .py3env
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">3. 开启virtualenv python3环境</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><span style="color:#111111;font-size:13px;">#&nbsp;source .py3env/bin/activate</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><span style="color:#337FE5;font-size:13px;">4. 在此环境安装Django相关模块</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# pip install django uwsgi&nbsp;PyMySQL
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">5. 创建uWSGI启动脚本</span>
</p>
<p>
	# mkdir -p /etc/uwsgi/bin
</p>
<p>
	# vi /etc/systemd/system/uwsgi-django.service
</p>
<pre class="prettyprint lang-bsh">[Unit]
&nbsp; &nbsp; Description=uWSGI instance to serve myproject

[Service]
&nbsp; &nbsp; BASE=/data/www/django.example.com
&nbsp; &nbsp; ENV=$BASE/.py3env
&nbsp; &nbsp; ExecStartPre=-/usr/bin/bash -c 'chown -R nginx:nginx /etc/uwsgi'
&nbsp; &nbsp; ExecStart=/usr/bin/bash -c 'source <span>/usr/share/nginx/html/</span><span>django.example.com/</span>.py3env/bin/activate; uwsgi --ini /etc/uwsgi/uwsgi-django.ini'

[Install]
&nbsp; &nbsp; WantedBy=multi-user.target</pre>
<p>
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"></span>
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;font-family:Helvetica;font-size:16px;background-color:#FFFFFF;"><strong>五. Django项目配置</strong></span>
</p>
<p>
	<span style="color:#337FE5;">1. 保证virtualenv python3环境开启</span>
</p>
<p>
	<span style="color:#337FE5;"><span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"># cd&nbsp;</span><span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">/usr/share/nginx/html/django.example.com/</span><br />
</span>
</p>
<p>
	# source&nbsp;.py3env/bin/activate
</p>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2.创建一个Django项目</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;django-admin startproject myproject .
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">3.添加static目录</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# vi&nbsp;myproject/settings.py
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	末行添加:
</p>
<pre class="prettyprint lang-bsh">STATIC_ROOT = os.path.join(BASE_DIR, "static/")</pre>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">4.创建本地SQLlite文件</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;background-color:#FFFFFF;">
	<span style="color:#E53333;">Tip:这里使用SQLlite代替其他数据库作为我们项目的DB</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# ./manage.py makemigrations<br />
# ./manage.py migrate
</p>
<pre class="prettyprint lang-bsh">Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">5.创建项目管理员账户</span>
</p>
<p>
	#&nbsp;./manage.py createsuperuser
</p>
<pre class="prettyprint lang-bsh">Username (leave blank to use 'root'): root
Email address: <a href="mailto:admin@admin.com">admin@admin.com</a>
Password:
Password (again):
Superuser created successfully.</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">6.生成项目静态文件目录</span>
</p>
<p>
	#&nbsp;./manage.py collectstatic
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">7.修改wsgi入口文件</span>
</p>
<p>
	#&nbsp;vi myproject/wsgi.py
</p>
<pre class="prettyprint lang-bsh">import os
import sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
sys.path.append('<span>/usr/share/nginx/html/</span><span>django.example.com</span>')

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">8.添加</span><span style="color:#337FE5;">ALLOWED_HOSTS</span>
</p>
<p>
	#&nbsp;vi myproject/settings.py
</p>
<p>
	Update:
</p>
<pre class="prettyprint lang-bsh">ALLOWED_HOSTS = ['django.example.com']</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">9. 修改权限</span><span style="color:#337FE5;">(可执行并保持与nginx启动user一致)</span>
</p>
<p>
	# chmod -R 755&nbsp;<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">/etc/uwsgi</span>
</p>
<p>
	# chown -R nginx:nginx&nbsp;<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">/etc/uwsgi</span>
</p>
<p>
	# chmod -R 755 /usr/share/nginx/html/django.example.com
</p>
<p>
	# chown -R nginx:nginx /usr/share/nginx/html/django.example.com
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">10.启动nginx+uwsgi</span>
</p>
<p>
	# systemctl restart nginx
</p>
<p>
	# systemctl restart uwsgi-django
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	展示效果<span style="color:#E53333;">(保证Windows本地host文件能够解析django.example.com)</span>
</p>
<p>
	<a href="http://www.showerlee.com/archives/2590/django-nginx"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2018/04/django-nginx.png" alt="" width="800" height="329" class="alignnone size-full wp-image-2624" title="" align="" /></a>
</p>
<p>
	<a href="http://www.showerlee.com/archives/2590/django-nginx-dash"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2018/04/django-nginx-dash.png" alt="" width="800" height="253" class="alignnone size-full wp-image-2625" title="" align="" /></a><a href="http://www.showerlee.com/archives/2590/django-nginx-dash1"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2018/04/django-nginx-dash1.png" alt="" width="800" height="291" class="alignnone size-full wp-image-2626" title="" align="" /></a>
</p>
<p>
	
</p>
<p>
	Finished...</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/2590">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CentOS7.4部署Python3+Django+uWSGI+Nginx" href="http://www.showerlee.com/archives/2590">http://www.showerlee.com/archives/2590</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/2590/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS7.4部署Django+Python3+Apache+Mod_wsgi</title>
		<link>http://www.showerlee.com/archives/2511</link>
		<comments>http://www.showerlee.com/archives/2511#comments</comments>
		<pubDate>Mon, 16 Apr 2018 03:11:05 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[APACHE]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[mod_wsgi]]></category>
		<category><![CDATA[python3]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=2511</guid>
		<description><![CDATA[安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="font-size:16px;color:#337FE5;">安装环境</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Remote: CentOS 7.4 x64 (<a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a>.example.com)
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Python: Python3.6.5
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Apache: Apache 2.4.6
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Mod_wsgi: 4.6.4
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	Django: Django 2.0.4
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><strong>一. 系统环境配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1.关闭iptables和selinux</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# su - root
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# systemctl stop firewalld
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># setenforce 0</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># vi /etc/sysconfig/selinux</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	修改
</p>
<pre class="prettyprint lang-bsh">SELINUX=disabled</pre>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;color:#337FE5;">2.添加本地host DNS</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># vi /etc/hosts</span>
</p>
<pre class="prettyprint lang-bsh">127.0.0.1    <a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a>.example.com</pre>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="font-size:16px;color:#337FE5;"><strong>二. Python配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1.安装<a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a>.6.5源及依赖包</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="vertical-align:baseline;line-height:1.5;"># yum install epel-release -y</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum groupinstall "Development tools" -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">yum install zlib-devel bzip2-devel openssl-devel ncurses-devel zx-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel libffi-devel -y</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2.编译安装<a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a>.6.5以及pip package manager</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# wget <a href="https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz" rel="nofollow">https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz</a> --no-check-certificate
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# tar xf Python-3.6.5.tar.xz
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd Python-3.6.5
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# make &amp;&amp; make altinstall
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">3.安装virtualenv</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;pip3.6 install --upgrade pip
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;pip3.6 install virtualenv
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-family:Helvetica;font-size:16px;background-color:#FFFFFF;"><strong>三. Django环境配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1. 配置Django virtualenv</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# mkdir -p /var/www/html/<a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd&nbsp;<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">/var/www/html/<a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# virtualenv -p /usr/local/bin/<a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a>.6 .py3env
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2. 开启virtualenv <a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a>环境</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><span style="color:#111111;font-size:13px;">#&nbsp;source .py3env/bin/activate</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><span style="color:#337FE5;font-size:13px;">3. 在此环境安装Django相关模块</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# pip install <a href="http://www.showerlee.com/archives/tag/django-2" title="查看django中的全部文章" class="tag_link">django</a> pymysql
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-size:16px;"><strong>四. Apache配置</strong></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">1. 安装apache package</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# yum install httpd httpd-devel -y
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2.安装<a href="http://www.showerlee.com/archives/tag/mod_wsgi" title="查看mod_wsgi中的全部文章" class="tag_link">mod_wsgi</a> for <a href="http://www.showerlee.com/archives/tag/python3" title="查看python3中的全部文章" class="tag_link">python3</a></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#E53333;">Tip:这里其实是一个远古巨坑, 网上90%以上资料的会粗心的直接使用yum install mod_wsgi去安装apache mod_wsgi模块, 这样做其实最终mod模块会调用本地默认的python2的所有库文件, 无论你后面如何配置django入口文件, apache都不会使用我们配置的virutalenv下隔离的python3, 导致apache无法调用python3而报错. 这里小伙伴要注意哦.</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;"># pip install mod_wsgi&nbsp;</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">3.导出apache所需的mod_wsgi模块</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">#&nbsp;mod_wsgi-express install-module</span>
</p>
<pre class="prettyprint lang-bsh">LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
WSGIPythonHome "/var/www/html/.py3env"</pre>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">4.配置apache配置文件</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;"><span style="color:#000000;"># vi</span><span style="color:#000000;">&nbsp;/etc/httpd/conf/httpd.conf</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;background-color:#FFFFFF;">
	末行添加:
</p>
<pre class="prettyprint lang-bsh">LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"</pre>
<p>
	
</p>
<p>
	#&nbsp;vi /etc/httpd/conf.d/django.conf
</p>
<p>
	
</p>
<pre class="prettyprint lang-bsh">WSGIPythonHome "/var/www/html/django/.py3env"

Listen 8080
&lt;VirtualHost *:8080&gt;

ServerName django.example.com

Alias /static /var/www/html/django/static
&lt;Directory /var/www/html/django/static&gt;
 Require all granted
&lt;/Directory&gt;

&lt;Directory /var/www/html/django/myproject&gt;
  &lt;Files wsgi.py&gt;
    Require all granted
  &lt;/Files&gt;
&lt;/Directory&gt;

WSGIDaemonProcess myproject python-path=/var/www/html/django/.py3env/lib/python3.6/site-packages
WSGIScriptAlias / /var/www/html/django/myproject/wsgi.py

&lt;/VirtualHost&gt;</pre>
<p>
	
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">5.重启apache并设置开机自启动</span>
</p>
<p>
	# systemctl restart httpd
</p>
<p>
	# systemctl enable httpd
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;font-family:Helvetica;font-size:16px;background-color:#FFFFFF;"><strong>五. Django项目配置</strong></span>
</p>
<p>
	<span style="color:#337FE5;">1. 保证virtualenv python3环境开启</span>
</p>
<p>
	# source <span style="color:#111111;font-family:Helvetica;font-size:13px;background-color:#FFFFFF;">/var/www/html/django/</span>.py3env/bin/activate
</p>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">2.创建一个Django项目</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# cd /var/www/html/django/
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	#&nbsp;django-admin startproject myproject .
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">3.添加static目录</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# vi&nbsp;myproject/settings.py
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	末行添加:
</p>
<pre class="prettyprint lang-bsh">STATIC_ROOT = os.path.join(BASE_DIR, "static/")</pre>
<p>
	
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	<span style="color:#337FE5;">4.创建本地SQLlite文件</span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;background-color:#FFFFFF;">
	<span><span style="color:#E53333;">Tip:这里使用SQLlite代替其他数据库作为我们项目的DB</span></span>
</p>
<p style="font-family:Helvetica;font-size:13px;vertical-align:baseline;color:#111111;background-color:#FFFFFF;">
	# ./manage.py makemigrations<br />
# ./manage.py migrate
</p>
<pre class="prettyprint lang-bsh">Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">5.创建项目管理员账户</span>
</p>
<p>
	#&nbsp;./manage.py createsuperuser
</p>
<pre class="prettyprint lang-bsh">Username (leave blank to use 'root'): root
Email address: <a href="mailto:admin@admin.com">admin@admin.com</a>
Password:
Password (again):
Superuser created successfully.</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">6.生成项目静态文件目录</span>
</p>
<p>
	#&nbsp;./manage.py collectstatic
</p>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">7.修改wsgi入口文件</span>
</p>
<p>
	#&nbsp;vi myproject/wsgi.py
</p>
<pre class="prettyprint lang-bsh">import os
import sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
sys.path.append('/var/www/html/django')

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">8.添加</span><span style="color:#337FE5;">ALLOWED_HOSTS</span>
</p>
<p>
	#&nbsp;vi myproject/settings.py
</p>
<p>
	Update:
</p>
<pre class="prettyprint lang-bsh">ALLOWED_HOSTS = ['django.example.com']</pre>
<p>
	
</p>
<p>
	<span style="color:#337FE5;">9.修改项目属主和权限</span>
</p>
<p>
	# chmod -R 755 /var/www/html
</p>
<p>
	# chown -R apache:apache /var/www/html
</p>
<p>
	
</p>
<p>
	查看最终目录下的生成的项目文件
</p>
<p>
	# ls -l
</p>
<pre class="prettyprint lang-bsh">-rwxr-xr-x 1 apache apache 38912 Apr 16 15:04 db.sqlite3
-rwxr-xr-x 1 apache apache   541 Apr 16 14:50 manage.py
drwxr-xr-x 3 apache apache  4096 Apr 16 15:21 myproject
drwxr-xr-x 3 apache apache  4096 Apr 16 15:05 static</pre>
<p>
	
</p>
<p>
	最终浏览器访问django项目
</p>
<p>
	<span style="color:#E53333;">Tip:保证windows本地添加django服务器的HOST域名</span>
</p>
<p>
	
</p>
<p>
	django测试页面
</p>
<p>
	<a href="http://www.showerlee.com/?attachment_id=2560"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2018/04/django.png" alt="" width="800" height="582" class="alignnone size-full wp-image-2560" title="" align="" /></a>
</p>
<p>
	
</p>
<p>
	项目主页, 输入之前创建的管理员账号密码
</p>
<p>
	<a href="http://www.showerlee.com/?attachment_id=2561"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2018/04/home.png" alt="" width="800" height="349" class="alignnone size-full wp-image-2561" title="" align="" /></a>
</p>
<p>
	
</p>
<p>
	项目后台
</p>
<p>
	<a href="http://www.showerlee.com/?attachment_id=2559"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2018/04/dashboard.png" alt="" width="600" height="245" class="alignnone size-full wp-image-2559" title="" align="" /></a>
</p>
<p>
	
</p>
<p>
	Finished...</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/2511">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="CentOS7.4部署Django+Python3+Apache+Mod_wsgi" href="http://www.showerlee.com/archives/2511">http://www.showerlee.com/archives/2511</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/2511/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
