zoukankan      html  css  js  c++  java
  • 在Apache上部署Django

    跟php类似,要想使Apache能够处理python脚本(实际上Apache是不能处理脚本的,只是利用别的扩展模块处理相应脚本),就要给Apache安装相应的扩展模块。

    Apache起初的python扩展是mod_python.so这个模块,但后来由于不在更新维护,所以大多使用mod_wsgi.so这个模块了。

    另:wsgi是python专有的,定义了服务器与python解释器之间交流沟通的方式的协议。

    部署第一步:给Apache安装mod_wsgi模块拓展

    sudo apt-get install libapache2-mod-wsgi

    安装完成后,会自动帮你把apache必要的软连接什么的都设置好。(即无需在手动写一个LoadModule mod_wsgi之类的东西了)

    (libapache2有n多的模块,应该都可以这么安装,不用一个个手动网上下载了)

    部署第二步:给apache一个配置文件,指定根目录,并说明请求交给谁处理:

    第一行WSGIScriptAlias 指明:只要是访问网站根目录 / ,都交给 /home/lisong/lisongsite/django.wsgi 处理。(另外说明:我的项目在/home/lisong/lisongsite)

    第二行至以后,就是普通的apache赋予目录访问权限的事儿了。

    部署第三步:给Django一个请求接收文件,接收从apache给过来的请求,并分发给相应的URL去处理。

    此脚本大体分两部分:

    第一部分,把项目路径、项目下的应用路径添加到path中。其实第一部分和第二部分都是一个目的,为了让django能找到相应的项目路径、脚本等等。

    第二部分,指明DJANGO_SETTING_MODULE的路径,这样可以使请求进来之后,根据这个路径去寻找设置并做相应分发处理。项目所有的设置都在settings这个地方呢。

    最后,重启apache,浏览器访问机器IP就可以了。

    如果有问题,例如报500错什么的,可以看看apache错误日志,挺好用的。/var/log/apache2/error.log

  • 相关阅读:
    网络通信协议八之(传输层)TCP协议详解
    MongoDB数据库连接失败
    Flask web开发之路十四
    Flask web开发之路十三
    Flask web开发之路十二
    Flask web开发之路十一
    Flask web开发之路十
    NEERC 1999 Advertisement /// oj22646
    upper_bound() lower_bound() 用法
    palindrome 回文 /// Manacher算法
  • 原文地址:https://www.cnblogs.com/lipijin/p/4166212.html
Copyright © 2011-2022 走看看