如何在同一个域下部署多个django cms项目。我正在使用apache 2.2和mod_wsgi

时间:2016-09-22 10:31:06

标签: django apache python-2.7 cpanel mod-wsgi

我需要在同一域名下部署两个Django Cms项目。我需要在调用以下域时检索这两个站点。 http://rndbkw.tk http://rndbkw.tk/blog

httpd.conf

中包含两个wsgi配置

for http://rndbkw.tk

ServerName rndbkw.tk
WSGIDaemonProcess rnd python-path=/home/rndbkw/djangocms:/home/rndbkw/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup rnd
WSGIScriptAlias / /home/rndbkw/djangocms/rnd/wsgi.py

ServerName rndbkw.tk
WSGIDaemonProcess blog python-path=/home/rndbkw/projects/djangocms:/home/rndbkw/projects/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup blog
WSGIScriptAlias / /home/rndbkw/projects/djangocms/rnd/wsgi.py

但我无法回复http://rndbkw.tk/blog

2 个答案:

答案 0 :(得分:2)

您的配置存在以下问题:

ServerName rndbkw.tk
WSGIDaemonProcess rnd python-path=/home/rndbkw/djangocms:/home/rndbkw/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup rnd
WSGIScriptAlias / /home/rndbkw/djangocms/rnd/wsgi.py

ServerName rndbkw.tk
WSGIDaemonProcess blog python-path=/home/rndbkw/projects/djangocms:/home/rndbkw/projects/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup blog
WSGIScriptAlias / /home/rndbkw/projects/djangocms/rnd/wsgi.py

改为使用:

ServerName rndbkw.tk

WSGIDaemonProcess blog python-home=/home/rndbkw/projects/virtualenv2.7 python-path=/home/rndbkw/projects/djangocms
WSGIScriptAlias /blog /home/rndbkw/projects/djangocms/rnd/wsgi.py process-group=blog application-group=%{GLOBAL}

WSGIDaemonProcess rnd python-home=/home/rndbkw/virtualenv2.7 python-path=/home/rndbkw/djangocms
WSGIScriptAlias / /home/rndbkw/djangocms/rnd/wsgi.py process-group=rnd application-group=%{GLOBAL}

所做的更改是:

  • /blog的子网址处挂载博客。
  • WSGIScriptAlias之前移动/blog /以使其优先,否则/将永远匹配,任何事情都无法通过博客网站。
  • 根据最佳做法,使用python-home WSGIDaemonProcess指令指定虚拟环境的位置,而不是使用site-packages添加python-path
  • 使用process-group选项WSGIScriptAlias来指示要使用的守护程序进程组。这使它更精确。您对WSGIProcessGroup的使用不会起到LocationDirectory范围限定的作用,因此最后两个WSGIProcessGroup指令中的任何一个都会覆盖第一个
  • application-group设置为%{GLOBAL}以强制使用每个守护程序进程的主解释器上下文。这解决了Python的某些第三方扩展模块的问题,这些模块在子解释器上下文中不起作用。

答案 1 :(得分:1)

配置中的最后一行需要

WSGIScriptAlias /blog /home/rndbkw/projects/djangocms/rnd/wsgi.py