apache部署django记录

在ubuntu下通过apache部署django

首先需要下载python,django,apache以及wsgi模块

python基本已经自带,我用的是2.7,不是的话可以重新装一个

下载django

sudo apt-get install python-django

下载apache2

sudo apt-get install apache2

下载wsgi

sudo apt-get install libapache2-mod-wsgi

需要修改两个文件

自己项目下新建一个apache文件夹,在文件夹里新建一个django.wsgi内容如下i

import os

import sys

path = '/var/www'

if path not in sys.path:

  sys.path.insert(0, '/var/www/yourproject')

os.environ['DJANGO_SETTINGS_MODULE'] = 'amzkeyword.settings'

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

在/etc/apache2/sites-available/新建一个yourproject.conf文件

<VirtualHost *:80>

  ServerName xx.xx.xx.xx(IP)

  DocumentRoot /var/www

  <Directory /var/www/yourproject>

    Options FollowSymLinks

    AllowOverride None

    Require all granted

  </Directory>

  WSGIDaemonProcess yourproject processes=2 threads=15 display-name=%{GROUP}

  WSGIProcessGroup yourproject

  #以下红色是修改静态文件

  Alias /statics/ /var/www/yourproject/statics/

  <Directory "/static/">

    Require all granted

  </Directory>

  WSGIScriptAlias /  /var/www/yourproject/apache/django.wsgi

</VirtualHost>

接着sudo a2ensite yourproject

sudo /etc/init.d/apache2 reload

打开网站查看是否成功

如果失败就看看错误日记

sudo /var/log/apache2/error.log

成功之后就开始导入数据库

mysql -u root -p

create database xxx

use database xxx

source /x/x/x.sql

导入成功后查看是否成功

遇到的问题:

Error importing module django.middleware.security: "No module named security"

引起这种问题的原因是django1.8之后加入了django.middleware.security,服务器上的django版本可能过低,无法识别。

解决办法:
sudo pip install django==1.10.2目前最新版本

或者到setting.py注释掉这个东西

a2ensite,a2dissite,激活或者取消激活site

a2enmod,a2dismod,激活或者取消激活mod

a2enconf,a2disconf激活或者取消激活conf

上一篇:五步教你实现使用Nginx+uWSGI+Django方法部署Django程序


下一篇:Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈