Apache如何部署django项目

 更新时间:2017年05月21日 14:24:35   作者:虫师  
这篇文章主要介绍了Apache如何部署django项目,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的web服务器上。

安装apache

Apache是非常有名的web服务器软件,如果想让我们web项目运行几乎离不开它。

Apache官方网站:http://httpd.apache.org/

根据自己的环境,选择相应的版本进行下载。apache 官网没有windows 64位版本,可以通过下面的链接进行下载:win7 64位:http://www.apachelounge.com/download/win64/

下载安装完成,apahche的目录结构如下:

修改conf/httpd.conf文件:

……
ServerRoot "D:/pydj/Apache24"
……
Listen 127.0.0.1:8089  #修改端口号
……
ServerName www.example.com:8089  
……
DocumentRoot "D:/pydj/Apache24/htdocs"
<Directory "D:/pydj/Apache24/htdocs">
……
ScriptAlias /cgi-bin/ "D:/pydj/Apache24/cgi-bin/"
……
<Directory "D:/pydj/Apache24/cgi-bin">
  AllowOverride None
  Options None
  Require all granted
</Directory>
…… 

主要就是路径和端口号的修改,如果你在启动apache的httpd.exe程序时一闪就没了,请检查这些配置。

启动bin/httpd.exe程序

通过浏览器访问:http://127.0.0.1:8089/

现在可以说明apache工作是正常的了。 

安装mod_wsgi

  The aim of mod_wsgi is to implement a simple to use Apache module which can host any Python application which supports the Python WSGI interface. 

The module would be suitable for use in hosting high performance production web sites, as well as your average self managed personal sites running on  web hosting services.

(mod_wsgi的目的是实现一个简单的使用Apache模块可以举办任何Python应用程序支持Python的WSGI接口。该模块将适用于主机的高性能生产的网站,以及一般的自我管理个人网站的网页寄存服务运行。)直接google翻译的,凑合的大概理解是干啥用的。

mod_wsgi网站:http://code.google.com/p/modwsgi/

下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

如win7 64位、python 2.7.6、apache(httpd-2.4.10)对应版本为:mod_wsgi-3.5.ap24.win-amd64-py2.7.zip

解压之后将得到一个mod_wsgi.so 文件,将其拷贝到Apache24\modules\ 目录下。

配置apache和django项目

因为你的目录一定和我的一样,所以,我再强调一下我的目录:

apache 存放目录:D:\pydj\Apache24

django项目目录:D:\pydj\myweb

再次打apache的配制文件httpd.conf:

……
#添加mod_wsgi.so 模块
LoadModule wsgi_module modules/mod_wsgi.so
#指定myweb项目的wsgi.py配置文件路径
WSGIScriptAlias / D:/pydj/myweb/myweb/wsgi.py
#指定项目路径
WSGIPythonPath D:/pydj/myweb

<Directory D:/pydj/myweb/myweb>
<Files wsgi.py>
  Require all granted
</Files>
</Directory> 

上面的路径,请根据自己的实际情况进行修改。

下面配置myweb/wsgi.py文件:

……
import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myweb.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application() 

在我们生成djnago项目时这些信息已经自动生成,其实我们不用对其做任何修改。

打开settings.py文件添加:

……
ALLOWED_HOSTS = ['127.0.0.1', 'localhost'] 

再次启动Apache24/bin/httpd.exe程序

通过浏览器访问:http://127.0.0.1:8089/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 对python中arange()和linspace()的区别说明

    对python中arange()和linspace()的区别说明

    这篇文章主要介绍了对python中arange()和linspace()的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python下使用Scrapy爬取网页内容的实例

    Python下使用Scrapy爬取网页内容的实例

    今天小编就为大家分享一篇Python下使用Scrapy爬取网页内容的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • pytorch中的torch.nn.Conv2d()函数图文详解

    pytorch中的torch.nn.Conv2d()函数图文详解

    这篇文章主要给大家介绍了关于pytorch中torch.nn.Conv2d()函数的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Python完成哈夫曼树编码过程及原理详解

    Python完成哈夫曼树编码过程及原理详解

    这篇文章主要介绍了Python完成哈夫曼树编码过程及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 细数nn.BCELoss与nn.CrossEntropyLoss的区别

    细数nn.BCELoss与nn.CrossEntropyLoss的区别

    今天小编就为大家整理了一篇细数nn.BCELoss与nn.CrossEntropyLoss的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 利用soaplib搭建webservice详细步骤和实例代码

    利用soaplib搭建webservice详细步骤和实例代码

    这篇文章主要介绍了使用python soaplib搭建webservice详细步骤和实例代码,大家可以参考使用
    2013-11-11
  • 使用Python的Django框架结合jQuery实现AJAX购物车页面

    使用Python的Django框架结合jQuery实现AJAX购物车页面

    这篇文章主要介绍了使用Python的Django框架结合jQuery实现AJAX购物车页面的方法,示例基于Django中构建好的JSON格式的RESTful API需要的朋友可以参考下
    2016-04-04
  • 浅谈一下Python究竟属不属于嵌入式语言

    浅谈一下Python究竟属不属于嵌入式语言

    这篇文章主要介绍了浅谈一下Python究竟属不属于嵌入式语言,大家普遍的认为C与C++才是标准的嵌入式语言,那么现在大火的Python算是一种嵌入式语言吗,需要的朋友可以参考下
    2023-04-04
  • python生成requirements.txt文件的两种方法

    python生成requirements.txt文件的两种方法

    requirements.txt 文件是项目的依赖包及其对应版本号的信息列表,本文主要介绍了python生成requirements.txt文件的两种方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • python中字典元素的创建、获取和遍历等字典知识点

    python中字典元素的创建、获取和遍历等字典知识点

    本文介绍了Python中的字典操作,包括字典的创建、元素获取(使用键和get()方法)、删除与清空(del和clear())、增加新键值对、修改已有值、获取键、值和键值对以及遍历字典的方法,同时阐述了字典的特点,如键的唯一性和无序性,以及字典生成式的使用
    2024-11-11

最新评论