写在开始之前:
浪费了好多的时间,查了好多的资料,终于将《ubuntu 14.04 + apache2.2 + Django 1.9.7 上线部署》配置成功了,所以特别的记录下来,帮助其他类似经历的小伙伴节省时间。
操作系统:ubuntu 14.04
apache2: apache2.2
python: 2.7.6
Django: 1.9.7
Django项目名:awlg
Django项目所在目录:/home/test/project
APP名: lgv1
首先罗列一下遇到的问题,同时也是写这篇文章的脉络:
1. 需要安装什么环境
2. Django 的项目中settings.py中的DEBUG为False的问题:
a. 静态文件找不到
b. 无法访问主页
3. wsgi文件怎么写
4. apache2应该怎么配置
废话不多说,下面开始正解!
1. 环境安装
#安装 apache2.2 apt-get update apt-get install apache2 apachectl -v # 安装apache2后,运行改命令查看apache2的版本号,已检查是否安装成功。 #安装django 1.9.7 apt-get install python-pip # 安装django之前,先安装一个python-pip pip install Django==1.9.7 #安装mod_wsgi apt-get install apache2-threaded-dev apt-get install apache2-mpm-worker apt-get install python-dev pip install mod_wsgi
2. Django 的项目中settings.py中的DEBUG为False的问题:
说明:如果DEBUG=True,则Django会自动帮你完成静态文件的查找加载,但如果为False时,需要自己配置一下静态文件的查找。
配置settings.py文件:
DEBUG = False
#DEBUG为FALSE时必须修改下面这行代码,否则无法访问,这里配置为任何IP可以访问,建议在web server中做ACL控制 ALLOWED_HOSTS = ['*'] #需要修改为绝对路径 STATIC_URL = '/root/myPython/awlg/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) #如果下面这个没有,最好添上,否则也会出问题的 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
配置urls.py文件:
from django.conf import settings from django.conf.urls import patterns #添加在文件末尾 if settings.DEBUG is False: urlpatterns += patterns('', url(r'^static/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': settings.STATIC_ROOT, }), )
3.apache2的配置
ubuntu的apache2配置文件根目录是:/etc/apache2
注意:接下来的配置仅以我个人服务器的环境配置,按照前面的步骤安装出来的apache2可能存在版本不同。
修改 ports.conf文件:
#添加一行代码即可, 意思是apache2启动时监听端口80
Listen 80
编辑httpd.conf文件:vim /etc/apache2/httpd.conf
ServerName localhost:80 <VirtualHost *:80> NameVirtualHost *:80
Alias /static/ /home/test/project/awlg/static/
#wsgi.py文件是由Django创建项目时自动生成的 WSGIScriptAlias / /home/test/project/awlg/awlg/wsgi.py <Directory /home/test/project/awlg/awlg> <Files wsgi.py> Satisfy Any Allow from all </Files> </Directory> </VirtualHost>
加载配置文件:
service apache2 reload
重新启动apache2
service apache2 restart
可以访问了哈~