在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