Apache2 部署 Django

Posted Shadow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache2 部署 Django相关的知识,希望对你有一定的参考价值。

环境:

debian8

apache2.4.10                    #请注意自己的apache版本,不同版本配置文件结构差异很大

django1.10

python3.4

默认apache2已经安装

Django项目路径 /var/www/mysite

---------------------------------------------------------------------------------------------------

首先安装MOD_WSGI

 

apt-get install libapache2-mod-wsgi-py3   #python3

apt-get install libapache2-mod-wsgi         #python2

 

创建django项目

cd /var/www

django-admin startproject mysite

cd mysite

mkdir static

cp -R /usr/local/lib/python3.4/dist-packages/django/contrib/admin/static/* ./static/   #复制后台样式文件到项目目录

 

创建虚拟主机配置文件

cd /etc/apache2/sites-enabled/

cp 000-default.conf 001-default.conf

nano 001-default.conf
<VirtualHost *:81>   ServerAdmin [email protected]   DocumentRoot /var/www/mysite   ErrorLog ${APACHE_LOG_DIR}/error.log   CustomLog ${APACHE_LOG_DIR}/access.log combined   # 存放用户上传图片等文件的位置   Alias /media/ /var/www/mysite/media/ # 静态文件(js/css/images)的存放位置 Alias /static/ /var/www/mysite/static/ # 允许通过网络获取static的内容 <Directory /var/www/mysite/static/> Require all granted </Directory> # 最重要的!通过wsgi.py让Apache识别这是一个Django工程,别漏掉前边的 / WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py # wsgi.py文件的父级目录 <Directory /var/www/mysite/mysite/> <Files wsgi.py> Require all granted </Files> </Directory> </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 

编辑 /etc/apache2/ports.conf 添加一行 Listen 81   #监听81端口,就是我们新建的虚拟主机

编辑 /etc/apache2/mods-enabled/wsgi.load

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so-3.4   #python3

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so       #python2

编辑 /etc/apache2/mods-enabled/wsgi.conf

添加一行 WSGIPythonPath /var/www/mysite   #项目所在路径

 

这个时候就差不多了可以  service apache2 start

访问:127.0.0.1:81

It worked!

Congratulations on your first Django-powered page.

访问:127.0.0.1:81/admin 会报错

初始化数据库文件

manage.py migrate

OK!

如果是在虚拟机或远程主机部署别忘了在settings.py中修改ALLOWED_HOSTS = [],添加可访问域名或IP列表

 


以上是关于Apache2 部署 Django的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apache2 和 Daphne 部署 django-channels

Python3 + django2.0 + apache2 + ubuntu14部署网站上线

如何部署Apache2+mod_wsgi+flask?

使用 mod_wsgi 在 Ubuntu 16.04 apache2 上部署 Django 应用程序

Apache2.4部署python3.6+django2.0项目

网站部署 Django+Apache