部署django项目到apache

部署django项目到apache   

 

如果我们不使用django框架来开web,如使用apache+mod_wsgi+python,或者直接apache+python,我们一开始就部署到apache上面的,一边开发一边直接在apache上测试,但是使用django的话,一般开始阶段,是直接使用

python manage.py  runserver

来让django架设一个暂时的web server,供我们测试。

 

当我们想要把我们开发的项目的搬到apache中运行时就需要做一些额外的事情。

 

下面从创建django工程到创建app到测试到部署,一一讲解。

 

1.  创建项目

使用

python django-admin.py  startproject blogsys

创建一个新项目,上面的例子中创建了一个blogsys的新项目。

 

2.  创建app

有了项目后,再就是创建app,使用:

python manage.py  startapp blog

 

接着按照django官方提供的教程,配置settting.py文件,创建模型类,创建模板,sync数据库等操作。

 

接下来就可以直接使用

python manage.py runserver

来启动刚才创建的项目,然后在浏览器中输入:

127.0.0.1:8000

来查看项目的首页。

 

接下来就是如何项目部署在apache上。

 

3. 创建一个新的apache的virtualhost

去到apeche的安装目录,在linux下,通常是:

/etc/apache2/

cd 进入site-avaiable目录,创建新的文件,例如 blog,输入下面内容:

  1 <VirtualHost *:8088>

  2   

  3     ServerName  127.0.0.1    

  4     DocumentRoot /var/www/django/blogsys

  5     LogLevel info

  6     ErrorLog ${APACHE_LOG_DIR}/blogsys -error.log  

  7     CustomLog ${APACHE_LOG_DIR}/blogsys -access.log Combined  

  8  

  9     WSGIScriptAlias / /var/www/django/blogsys/django.wsgi

 10  

 11     <Directory />

 12         Options indexes

 13         Order allow,deny

 14         Allow from all

 15     </Directory>

 16  

 17     <Directory /var/www/django/blogsys>

 18         Options ExecCGI

 19         Order allow,deny

 20         Allow from all

 21     </Directory>

 22  

 23   

 24 </VirtualHost>

在去ports.conf这个文件中添加

NameVirtualHost: *:8088

listen 8088

 

然后,使用

sudo a2ensite blog

让apache是blog配置生效。

 

接下来使用

sudo service apache2 restart

重启apache服务器。

 

4. 创建网站的总入口处理

注意上面blog配置文件中蓝色的一行吧,这个就是当访问网站的根目录的时候,的总入口处理代码。

因此去到blogsys目录,创建一个django.wsgi文件,内容如下:

  1 import os

  2 import sys

  3 import django.core.handlers.wsgi

  4 setpath = '/var/www/django/blogsys'

  5 if setpath not in sys.path:

  6     sys.path.append( setpath )

  7

  8 urlpath = '/var/www/django'

  9 if urlpath not in sys.path:

 10     sys.path.append( urlpath )

 11

 12 os.environ[‘DJANGO_SETTINGS_MODULE’] = 'settings'

 13

 14

 15 application=django.core.handlers.wsgi.WSGIHandler()

 16

 17

注意因为django框架要导入两个文件一个settings.py还有一个urls.py,需要将这两个文件对应的目录加到python的sys.path中,需要在

import这2个文件时,python解释器就会从sys.path中找到对应目录。

 

5. 测试网站

这时候在地址栏输入

127.0.0.1:8088

就可以看到你的项目的首页了。

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *