zoukankan      html  css  js  c++  java
  • Ubuntu16.04 apache2 wsgi 部署django

    在Ubuntu16.04上部署django其实还算简单直观,最重要的问题就是路径设置正确,并且保证版本统一,这个测试是在

    Apache/2.4.18 (Ubuntu)  apt-get install apache2

        Python/2.7.11 wget  https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz 

        mod_wsgi/4.3.0   apt-get install libapache2-mod-wsgi

    一,安装python 和django。这个很简单,django用pip安装就可以。就不解释了。

    二,安装apache2 和 wsgi。

    这里用的是apt-get.

    sudo apt-get install apache2

    sudo apt-get install libapache2-mod-wsgi

    需要注意的是,如果之前安装配置过apache2的并且配置很乱,无法修复,建议还是完全卸载之后在安装。完全卸载的命令:

    $ sudo apt-get --purge remove apache-common

    $ sudo apt-get --purge remove apache*

    安装完以后,去 /etc/apache2/ 下的 mods-available 和mods-enabled 中查看是否都存在 wsgi.conf 和wsgi.load 两个文件。

    注意检查:/etc/apache2/mods-enabled/wsgi.load链接文件是否存在,并且检查文件内容:

    LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

    要chmod 755 mod_wsgi.so文件.

    三、配置apache 和 wsgi

    (PS.假设你是在目录/var/www/mysite 下面 django-admin.py startproject testproject ).

    1、apache的配置:

    在/etc/apache2/sites-available中新建一个文件 testdjango.conf (PS.写的时候把中文注释都删除)

    <VirtualHost *:80>
    
    ServerName testproject.djangoserver 
    
     #ServerName这个无所谓,只要在host中把你的ip地址映射到这个上面就可以了。不想改host最简单的方法就是 
    #用
    sudo a2dissite 000-default.conf 等虚拟主机给disable掉,只留 testdjango.conf。(PS.在site-enabled中的site是enable的,可以根据这个来查看) DocumentRoot /var/www/mysite/testproject # 这一条是指向网站的根目录 <Directory /var/www/mysite/testproject> Order allow,deny Allow from all </Directory> WSGIDaemonProcess .djangoserver processes=2 threads=15 display-name=%{GROUP} WSGIProcessGroup testproject.djangoserver #这里的testproject.djangoserver 对应前面的ServerName WSGIScriptAlias / /var/www/mysite/testproject/apache/wsgi.py # (/和/var...中间是有空格的)是将后面的那个路径指向网站的根目录。第一个“/”表示外部访问时的网站根目录,当有新的requset的时候,apache从这里开始解析。 </VirtualHost>

    2、wsgi的配置

    在 /var/www/mysite/testproject/下新建dir:apache 。在./apache下新建文件wsgi.py。(文件名对应前面的WSGIScriptAlias第二个路径下的文件名)

    import os
    
    import sys
    
    path = '/var/www/mysite'
    
    if path not in sys.path:
    
    sys.path.insert(0, '/var/www/mysite/testproject') #将网站工程目录临时加入ubuntu系统环境中
    
    os.environ['DJANGO_SETTINGS_MODULE'] = ' testproject.settings'
    
     #新建一个环境变量DJANGO_SETTINGS_MODULE,目的是指向网站工程的settings.py,这里
    
    #用' testproject.settings'
    
    import django.core.handlers.wsgi
    
    application = django.core.handlers.wsgi.WSGIHandler()

    配置完成以后 

    sudo a2ensite testdjango.conf

    sudo service apache2 reload

    然后浏览器http://127.0.0.1 就可以看见django的初始页面了。

    PS.出错的话,一定要多看看apache2的err log。

    命令行输入: tail /var/log/apache2/error.log

    $ sudo dpkg -l libapache2-mod-wsgi           #查看wsgi的版本
                       结果: libapache2-mod 3.3-4build1
    
    $ a2enmod wsgi                               #验证模块安装正常 
                        Module wsgi already enabled

    如果遇到服务器403的错误,那么可能是你的"/"目录被禁止访问(默认)
    修改一下apache2.conf文件(位于/etc/apache2/)
    把Require all denied改为Allow from all就可以了

  • 相关阅读:
    用机器学习来预测一个活动的总交易额值
    点击率模型的二三事
    git教程
    shell的查找与替换
    python中列表和元组以及字符串的操作
    自然语言处理第一课
    shell入门
    python基础知识
    SQL指令中一些特别值得注意的地方
    【python】json
  • 原文地址:https://www.cnblogs.com/stragon/p/5808702.html
Copyright © 2011-2022 走看看