我正在尝试使用 mod_wsgi 在 Apache 上运行本地 Django 服务器。我在 Mac 上运行开箱即用的 Apache。
hobbes3@hobbes3:~/Sites/mysite$ apachectl -v
Server version: Apache/2.2.21 (Unix)
Server built: Nov 15 2011 15:12:57
Apache 正确加载 mod_wsgi。
hobbes3@hobbes3:~/Sites/mysite$ apachectl -t -D DUMP_MODULES | grep wsgi
Syntax OK
wsgi_module (shared)
在我的 httpd.conf
文件中,我加载 apache_django_wsgi.conf
这是
WSGIDaemonProcess django
WSGIProcessGroup django
Alias /mysite/ "/Users/hobbes3/Sites/mysite/"
<Directory "/Users/hobbes3/Sites/mysite">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>
WSGIScriptAlias /mysite "/Users/hobbes3/Sites/mysite/apache/django.wsgi"
<Directory "/Users/hobbes3/Sites/mysite/apache">
Allow from all
</Directory>
我的django.wsgi
文件是
import os
import sys
paths = [ '/Users/hobbes3/Sites/mysite',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages',
]
for path in paths:
if path not in sys.path:
sys.path.append(path)
sys.executable = '/usr/local/bin/python'
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
我也可以重新启动 Apache,不会出现任何错误。但是当我尝试访问 http://localhost/mysite
时,我的浏览器显示出现 500 内部服务器错误。
我的 Apache 错误日志显示(我截断了日期和时间):
mod_wsgi (pid=73970): Exception occurred processing WSGI script '/Users/hobbes3/Sites/mysite/apache/django.wsgi'.
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 250, in __call__
self.load_middleware()
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/handlers/base.py", line 39, in load_middleware
for middleware_path in settings.MIDDLEWARE_CLASSES:
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/utils/functional.py", line 276, in __getattr__
self._setup()
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/conf/__init__.py", line 89, in __init__
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings
我不知道为什么它无法导入mysite.settings
,我不是将其包含在sys.path
中吗?
settings.py
的完整路径为 /Users/hobbes3/Sites/mysite/
。
最佳答案
您已在路径中包含 mysite
,但引用了 mysite.settings
。因此,Python 正在其在路径上找到的目录中寻找 mysite
模块。仅使用设置
。
关于Mac 上的 Django : Apache with mod_wsgi configuration problems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9465274/