在一台 Xampp Windows Apache Mod_WSGI 服务器上部署两个 Django 项目

Deploy two Django projects on one Xampp Windows Apache Mod_WSGI server

我想在一台服务器上部署多个 Django 项目。 它是 Windows 32 位 Xampp。 mod_wsgi 是 32 位。 python 是 32 位。 Django 是 1.7.3 版。

我已经阅读了很多帖子并尝试了很多方法,但我无法解决这个问题。

浏览器中显示的以下错误也表明了一些版本信息。

Server error!
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.
Error 500
localhost Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19 mod_wsgi/3.5 Python/2.7.6

我可以通过这种方式成功部署一个 Django 应用程序。例如,如果我只部署一个,就没有错误 c:/p2/xampp/htdocs/django/mysite

当我添加第二个项目时出现以下错误,只有第一个项目有效。

我在 apache 中收到以下错误 error.log。

mod_wsgi (pid=11184): Exception occurred processing WSGI script 'C:/p2/xampp/htdocs/django/apache/django161c.wsgi'.
~~~~~ some lines removed ~~~~~~
ImportError: Could not import settings 'mysite.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named mysite.settings

我的最后两行 httpd.conf:

LoadModule wsgi_module modules/mod_wsgi.so
Include C:/p2/xampp/htdocs/django/apache/wsgi3.conf

我的wsgi3.conf

############
listen 8986
<VirtualHost *:8986>
Alias /static/ c:/p2/xampp/htdocs/django/mysite/static/
WSGIScriptAlias / "c:/p2/xampp/htdocs/django/apache/mysite.wsgi" 
    DocumentRoot "c:/p2/xampp/htdocs/django/mysite"
    ServerName 127.0.0.1
<Directory "c:/p2/xampp/htdocs/django/apache">
    Allow from all
</Directory>
</VirtualHost>
############
listen 8985
<VirtualHost *:8985>
WSGIScriptAlias / "c:/p2/xampp/htdocs/django/apache/django161c.wsgi" 
    DocumentRoot "c:/p2/xampp/htdocs/django/django161c"
    ServerName 127.0.0.1
<Directory "c:/p2/xampp/htdocs/django/apache">
    Allow from all
</Directory>
</VirtualHost>

我的mysite.wsgi:

import os, sys
sys.path.append('c:/p2/xampp/htdocs/django/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
# works: https://www.pythonanywhere.com/forums/topic/1629/ # this is for changes to django 1.7 # 2015-01-23_Fri_14.13-PM
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我的django161c.wsgi

import os, sys
sys.path.append('c:/p2/xampp/htdocs/django/django161c')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

你能帮帮我吗?

解决方法是:

有两个'mysite.settings' django161c.wsgi.

中应该是'django161c.settings'

这修复了它。

然后在每个项目中一直要求我重复登录

然后我添加了

SESSION_COOKIE_PATH = "/django161c"

settings.py 这样每个站点就不会共享相同的 sessionid cookie。

我为 'mysite' 项目做了同样的事情。

SESSION_COOKIE_PATH = "/mysite"

此外,我匹配了mod_wsgi

的编译器和版本

我用过 python 2.7.9 apache 2.4 所有 32 位和所有 vc9 编译器 mod_wsgi 是从 post 下载的:

https://groups.google.com/forum/#!topic/modwsgi/SxedM5UKvic

我将模块命名为mod_wsgi-442-ap24-w32-vc9-py279.so

这样我就知道是mod_wsgi4.4.2,全部用vc9编译,for apache 2.4,python2.7.9,全部win32。