• 【Django】Apache上运行多个Django项目


    运行单个项目的步骤参考:这里

    1 安装环境

    操作系统:Ubuntu 12.04 LTS 32 位(安装在VMware虚拟机中)

    python 版本: 

    Python 2.7.3

    Django版本  

    >>> django.VERSION
    (1, 6, 2, 'final', 0)

    mod_wsgi版本

     mod_wsgi3.x

     apache版本及查看命令

    x@x:~/program$ /usr/sbin/apachectl -v    (版本查看命令)
    /usr/sbin/apachectl: 87: ulimit: error setting limit (Operation not permitted)
    Server version: Apache/2.2.22 (Ubuntu)
    Server built:   Mar 19 2014 21:10:40

    2 配置

    ①修改port.conf

    x@x:/etc/apache2$ sudo vim ports.conf 

    添加以下代码 :

     NameVirtualHost *:8080

     Listen 8080

    NameVirtualHost *:80
    Listen 80
    
    # add you code here for multiple Django code 
    NameVirtualHost *:8080 Listen
    8080

    ② 新建两个Django项目

    我新建的项目的目录是   x@x:~/program/django$   (这个目录可以自定) 

    django-admin.py startproject mywork
    django-admin.py startproject mywork1
    ├── mywork
    │   ├── apache               (后加的)
    │   │   └── django.wsgi      (后加的)
    │   ├── manage.py
    │   ├── mywork
    │   │   ├── __init__.py
    │   │   ├── settings.py
    │   │   ├── urls.py
    │   │   └── wsgi.py
    │   └── static              (后加的)
    ├── mywork1
    │   ├── apache              (后加的)
    │   │   └── django.wsgi     (后加的)
    │   ├── manage.py 
    │   ├── mywork1
    │   │   ├── __init__.py
    │   │   ├── settings.py
    │   │   ├── urls.py
    │   │   └── wsgi.py
    │   └── static               (后加的)
    └── UserWeb.tgz

    ③ 修改httpd.conf 文件

    x@x:/etc/apache2$ sudo vim httpd.conf

    添加如下代码

    # add code for multiple Django projects run in Apache
    #LoadModule wsgi_module modules/mod_wsgi.so
    #setting for Django projedt1  ****
    <VirtualHost *:80>
        ServerName 127.0.0.1
        DocumentRoot /home/x/program/django/mywork
        Alias /admin_media /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static
        <Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
           AllowOverride None
           Options None
           Order allow,deny 
           Allow from all 
        </Directory>
    
        WSGIScriptAlias / /home/x/program/django/mywork/apache/django.wsgi
        <Directory /home/x/program/django/mywork>
            Order deny,allow 
            Allow from all
        </Directory>
        <Directory /home/x/program/django/mywork/apache>
            Allow from all
        </Directory>
    
        <Location "/static/">
    #配置静态文件,网站中所有静态文件的路径为"/static/xxxx"
             SetHandler None
        </Location>
    </VirtualHost>
    
    
    <VirtualHost *:8080>
        ServerName 127.0.0.1
        DocumentRoot /home/x/program/django/mywork1
        Alias /admin_media /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static
        <Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
           AllowOverride None
           Options None
           Order allow,deny 
           Allow from all 
        </Directory>
    
        WSGIScriptAlias / /home/x/program/django/mywork1/apache/django.wsgi
        <Directory /home/x/program/django/mywork1>
            Order deny,allow 
            Allow from all
        </Directory>
        <Directory /home/x/program/django/mywork1/apache>
            Allow from all
        </Directory>
    
        <Location "/static/">
    #配置静态文件,网站中所有静态文件的路径为"/static/xxxx"
             SetHandler None
        </Location>
    </VirtualHost>

    ④在Django项目中添加文件夹及文件

    在项目文件根目录下添加

    目录apache  和static

    并在apache中新建文件django.wsgi

    文件目录如下:

    ├── mywork
    │   ├── apache
    │   │   └── django.wsgi
    │   ├── manage.py
    │   ├── mywork
    │   │   ├── __init__.py
    │   │   ├── settings.py
    │   │   ├── urls.py
    │   │   └── wsgi.py
    │   └── static
    ├── mywork1
    │   ├── apache
    │   │   └── django.wsgi
    │   ├── manage.py
    │   ├── mywork1
    │   │   ├── __init__.py
    │   │   ├── settings.py
    │   │   ├── urls.py
    │   │   └── wsgi.py
    │   └── static

    mywork/apache/  中的django.wsgi文件如下

    import os, sys
    
    sys.path.append('/home/x/program/django/mywork')
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mywork.settings'
    os.environ['PYTHON_EGG_CACHE'] = '/tmp'
    
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    #print >> sys.stderr, sys.path  

    mywork1/apache/  中的django.wsgi文件如下

    import os, sys
    
    sys.path.append('/home/x/program/django/mywork1')
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mywork1.settings'
    os.environ['PYTHON_EGG_CACHE'] = '/tmp'
    
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    #print >> sys.stderr, sys.path             

    ⑤重启apache服务器,访问Django项目

    sudo service apache2 restart

    通过ip地址访问即可

    127.0.0.1:80
    127.0.0.1:8080

    如图所示

    参考文章

    1  ubuntu下部署django+apache2+mod_wsgi(配置多个站点)

    2 Linux下安装apache,配置mod_wsgi,运行Django项目(挺详细的)

  • 相关阅读:
    将博客搬至CSDN
    机器学习中的超参数(Hyperparameters in machine learning)
    《机器学习笔记》-环境配置
    采用KNN算法实现一个简单的推荐系统
    推荐系统介绍:(协同过滤)—Intro to Recommender Systems: Collaborative Filtering
    推荐系统中TopN与kNN的区别
    采用KNN算法实现一个简单的推荐系统
    k-medoids与k-Means聚类算法的异同
    使用Spring Initializer快速创建Spring Boot项目
    Spring 自动注入
  • 原文地址:https://www.cnblogs.com/codemyzen/p/3690042.html
Copyright © 2020-2023  润新知