在一台 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。
我想在一台服务器上部署多个 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。