zoukankan      html  css  js  c++  java
  • Ubuntu+Django+mod_wsgi+Apache配置过程


    Ubuntu15.10

    Apache2.4( sudo apt-get install apache2 )

    Python3.4( sudo apt-get install apache2 ),  【系统还有个自带的Python2.7】

    Django1.9.5( pip3.4 install django )

    mod_wsgi4.5.2(编译安装)


    Django项目目录:/var/www/DjangoProject已经建好了mysite工程, python3.4 manage.py runserver ,浏览器显示It works...正常

    .
    └── mysite
        ├── db.sqlite3
        ├── manage.py
        └── mysite
            ├── __init__.py
            ├── settings.py
            ├── urls.py
            └── wsgi.py

    启动Apache, sudo service apache2 start ,浏览器显示Apache默认网页(var/www/html/index.html),正常


     要让Apache能够找到mysite,需要一个中间件:mod_wsgi

    首先安装 apache2-dev,(会安装apxs2)

    sudo apt-get install apache2-dev   

    然后可以进行mod_wsgi的安装了

    下载源码包,解压,进入目录

    ./config --with-python=/usr/bin/python3.4
    
    sudo make && make install

    编译完毕,会在Apache的modules目录下生成mod_wsgi.so

    最后配置Apache能够找到并执行mysite的wsgi.py脚本就OK了

    #/etc/apache2/apache2.conf    
    
    WSGIScriptAlias /mysite  /var/www/DjangoProject/mysite/mysite/wsgi.py   #映射/mysite URL到wsgi.py脚本
    WSGIPythonPath /var/www/DjangoProject/mysite                            #使得可以import mysite

    <Directory /var/www/DjangoProject/mysite/mysite> <Files wsgi.py > Require all granted </Files> </Directory>


    上面安装mod_wsgi时,会自动在/etc/apache2/mods-enabled/目录下生成:wsgi.load和wsgi.conf
    
    如果没有,也可以手动载入模块:LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
    apt-get 方式安装的Apache,配置文件、modules、log等都是分散的,如果不习惯也可以自己编译安装Apache
    /etc/apache2/ |-- apache2.conf   | `-- ports.conf   |-- mods-enabled   | |-- *.load   | `-- *.conf   |-- conf-enabled   | `-- *.conf   |-- sites-enabled   | `-- *.conf

    /usr/lib/apache2/modules/*.so

    /var/log/apache2/*.log

    重启Apache,访问127.0.0.1/mysite, 就可以看到Django的It works...了!


    其他说明:

    如果直接 sudo apt-get install libapache2-mod-wsgi, 生成的mod_wsgi.so貌似是基于默认的python2.7的,所以如果用python3的django创建的wsgi.py,

    而python2.7没有安装django,当Apache访问wsgi.py时则会出现ImportError: no module named django.core.wsgi ... 

    KEEP LEARNING!
  • 相关阅读:
    扩展正则表达式 练习题
    Linux特殊符号
    文件属性下
    文件属性和ls -lhi
    复习之前的和补充一些内容
    第二关练习题总结完结
    云服务器防ssh攻击
    实验四+085
    实验3+085
    第5次作业+085
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5450476.html
Copyright © 2011-2022 走看看