宝塔面板+djiango+mod wsgi +apache 配置多项目站点,djiangowsgi


 

在一台服务器上同时有多个djiango项目,那么就需要配置多站点,利用不同的域名不同的端口  同时存在多个项目。

环境,centos + 宝塔面板+apache+django

 

1.在centos环境下安装好宝塔面板

安装宝塔面板的脚本,可以去宝塔面板官网查找

安装好apache   数据库等

 

2.安装django

安装django即相关的依赖包

如果centos下没有安装pip需要先安装pip

yum -y install epel-release

yum install python-pip

对安装好的pip进行升级

pip install --upgrade pip

 

pip install django==1.8.2

pip install pillow

pip install paramiko

yum install MySQL-python -y

 

3.添加网站

进入宝塔面板后台添加一个网站

例如

 

4.导入mod_wsgi.so

wsgi.so可以到这里去下载

http://down.51cto.com/data/2451791

把对应的mod_wsgi.so文件拷贝到下面目录

/www/server/apache/modules

然后修改/www/server/apache/conf目录下的httpd.conf

增加下面的命令

LoadModule wsgi_module modules/mod_wsgi.so

5.Setting.py设置

上传django项目 把做好的django项目用filezilla上次到项目目录中。

注意,我把每个项目的  主目录  都改成了conf,   即存放wsgi.py的目录 改成了conf

 

删除所有后缀名为.pyc的文件

修改权限和所有者

chmod 777 –R FanHuaCMDB(工作当中禁止用,太蠢,太危险)

可以写成下面

chmod +x -R FanHuaCMDB

修改所有者

chown –R apache:apache FanHuaCMDB

 

6.wsgi.py设置

 

修改代码为:

import os
import sys

from django.core.wsgi import get_wsgi_application

sys.path.append("/www/wwwroot/xxx.wexxx.me")

os.environ['PYTHON_EGG_CACHE'] = '/www/wwwroot/xxx.wexxx.me/.python-egg'
os.environ["DJANGO_SETTINGS_MODULE"] = "conf.settings"

application = get_wsgi_application()

每个项目的wsgi都这样设置,只有域名不同。

7.apache 配置文件设置

<VirtualHost *:801>
    ServerAdmin webmaster@example.com
    DocumentRoot "/www/wwwroot/xxx.wexx.me"
    ServerName 0793d6c0.xxx.wexx.me
    ServerAlias xxx.wexx.me
    errorDocument 404 /404.html
    ErrorLog "/www/wwwlogs/xxx.wexx.me-error_log"
    CustomLog "/www/wwwlogs/xxx.wexx.me-access_log" combined
    WSGIScriptAlias / "/www/wwwroot/xxx.wexx.me/conf/wsgi.py"
    Alias /static/ /www/wwwroot/xxx.wexx.me/static/
    <Directory "/www/wwwroot/xxx.wexx.me/static/">
        Require all granted
    </Directory>
    <Directory "/www/wwwroot/xxx.wexx.me">
        AllowOverride All
        Require all granted  
    </Directory>
</VirtualHost>

 

 每个网站都这样设置下,

最后 重启下apache就可以运行了。

 

 

 

注意的事项:

还有几个地方要更改为conf

manage.py里面

 

import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "conf.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

还有就是 settings.py里面

ROOT_URLCONF = 'conf.urls'

WSGI_APPLICATION = 'conf.wsgi.application'

 

4导入

 

相关内容

    暂无相关文章