我想在一台服务器上部署多个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
My 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()
你能帮助我吗?
答案 0 :(得分:1)
解决方案是:
有两个&#39; mysite.settings&#39; 应该是&#39; django161c.settings&#39;在 django161c.wsgi 。
这解决了它。
然后它一直要求我在每个项目中反复登录。
然后我添加了
SESSION_COOKIE_PATH =&#34; / django161c&#34;
到 settings.py ,这样每个网站都不会共享同一个会话ID。
我为“谜团”做了同样的事情。项目
SESSION_COOKIE_PATH =&#34; / mysite&#34;
另外,我匹配编译器和mod_wsgi
的版本 我用过 python 2.7.9 apache 2.4所有32位和所有vc9编译器 mod_wsgi是从这篇文章下载的:https://groups.google.com/forum/#!topic/modwsgi/SxedM5UKvic
我将模块命名为 mod_wsgi-442-ap24-w32-vc9-py279.so
这种方式我知道它是mod_wsgi 4.4.2,全部用vc9编译,用于apache 2.4,python 2.7.9,所有win32。