zoukankan      html  css  js  c++  java
  • 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 192.168.18.78: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-3.5.ap22.win-amd64-py2.7)

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

     

    配置apache和django项目

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

    apache 存放目录:D:pydjApache24

    django项目目录:D:pydjmyweb

     

    再次打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> Allow from all </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 = ['*']


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

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

     

    =======================================

     

    apache静态文件配置,
    Alias /static F:/django_project/xxx/src/static
    <Directory F:/django_project/xxx/src/static>
    Order deny,allow
    Allow from all
    </Directory>


    Require all granted好像都改为了Allow from all


    使局域网内访问
    修改httpd.conf的配置就可以了。
    加入你的ip是192.168.0.11(这是一个局域网内网ip
    那么你修改Listen的配置为
    Listen 192.168.0.11:8089
    然后重启apache,别人就可以用http://192.168.0.11:8089访问你documentRoot配置指定的路径下的index.html了。但是这只限于和你同在一个内网的人可以。

    如果你希望互联网上的人也能够访问的话,你就需要一个对外的公网ip,借助花生壳这类的软件进行一个ip动态绑定,相关的细节你可以再去搜索一下。
  • 相关阅读:
    201119西瓜书系列博客---5、神经网络
    GO结果画图
    Java调用R语言脚本
    CentOS 6,7 查看、修改时间时区
    eval 让shell脚本动态的构建命令
    shell脚本中awk命令内置参数与脚本参数冲突的解决方法
    Shell 传递参数
    clusterProfiler::enrichGO() is getting very slow
    R install("curl") on CentOS 7.6
    centos 7 安装 myclipse 2017 ci
  • 原文地址:https://www.cnblogs.com/AmilyWilly/p/6282547.html
Copyright © 2011-2022 走看看