我目前在Apache上设置虚拟主机以尝试在django.localhost
我的apache配置是正确的:
hobbes3@hobbes3:~/Sites/mysite$ apachectl configtest
Syntax OK
这是我的~/Sites/mysite/apache/apache_django_wsgi.conf
文件,该文件包含在/etc/apache2/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName django.localhost
ErrorLog "/var/log/apache2/django-error_log"
<Directory /Users/hobbes3/Sites/mysite>
AllowOverride All
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess django.localhost processes=1 threads=1 maximum-requests=1
WSGIProcessGroup django.localhost
WSGIScriptAlias / "/Users/hobbes3/Sites/mysite/apache/django.wsgi"
</VirtualHost>
这是我的/User/hobbes3/Sites/mysite/apache/django.wsgi
import os
import sys
paths = [ '/Users/hobbes3/Sites/mysite',
'/usr/local/lib/python2.7/site-packages',
]
for path in paths :
if path not in sys.path :
sys.path.append( path )
os.environ[ 'DJANGO_SETTINGS_MODULE' ] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
我知道/usr/local/lib/python2.7/site-packages' I have both './django' and './MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg
。我相信我使用homebrew安装了它们。因此/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages
也指向同一个位置(我不知道如何)。
当我运行python manage.py runserver
时,我知道MySQLdb
正在运行,但我尝试访问django.localhost
,我收到两个类似的错误,无法找到MySQLdb
(我被截断)可读性的日期和时间):
mod_wsgi (pid=76282): Exception occurred processing WSGI script '/Users/hobbes3/Sites/mysite/apache/django.wsgi'.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 272, in __call__
response = self.get_response(request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 169, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 203, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 59, in technical_500_response
html = reporter.get_traceback_html()
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 151, in get_traceback_html
return t.render(c)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 123, in render
return self._render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render
bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 73, in render_node
result = node.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 90, in render
output = self.filter_expression.resolve(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 536, in resolve
new_obj = func(obj, *arg_vals)
File "/usr/local/lib/python2.7/site-packages/django/template/defaultfilters.py", line 695, in date
return format(value, arg)
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 285, in format
return df.format(format_string)
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 191, in r
return self.format('D, j M Y H:i:s O')
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.7/site-packages/django/utils/encoding.py", line 71, in force_unicode
s = unicode(s)
File "/usr/local/lib/python2.7/site-packages/django/utils/functional.py", line 206, in __unicode_cast
return self.__func(*self.__args, **self.__kw)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 81, in ugettext
return _trans.ugettext(message)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 286, in ugettext
return do_translate(message, 'ugettext')
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 276, in do_translate
_default = translation(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 185, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 162, in _fetch
app = import_module(appname)
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 3, in <module>
from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/helpers.py", line 3, in <module>
from django.contrib.admin.util import (flatten_fieldsets, lookup_field,
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/util.py", line 1, in <module>
from django.db import models
File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py", line 78, in <module>
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 33, in load_backend
return import_module('.base', backend_name)
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
TemplateSyntaxError: Caught ImproperlyConfigured while rendering: Error loading MySQLdb module: No module named MySQLdb
mod_wsgi (pid=76283): Exception occurred processing WSGI script '/Users/hobbes3/Sites/mysite/apache/django.wsgi'.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 272, in __call__
response = self.get_response(request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 169, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 203, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 59, in technical_500_response
html = reporter.get_traceback_html()
File "/usr/local/lib/python2.7/site-packages/django/views/debug.py", line 151, in get_traceback_html
return t.render(c)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 123, in render
return self._render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render
return self.nodelist.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render
bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 73, in render_node
result = node.render(context)
File "/usr/local/lib/python2.7/site-packages/django/template/debug.py", line 90, in render
output = self.filter_expression.resolve(context)
File "/usr/local/lib/python2.7/site-packages/django/template/base.py", line 536, in resolve
new_obj = func(obj, *arg_vals)
File "/usr/local/lib/python2.7/site-packages/django/template/defaultfilters.py", line 695, in date
return format(value, arg)
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 285, in format
return df.format(format_string)
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 191, in r
return self.format('D, j M Y H:i:s O')
File "/usr/local/lib/python2.7/site-packages/django/utils/dateformat.py", line 30, in format
pieces.append(force_unicode(getattr(self, piece)()))
File "/usr/local/lib/python2.7/site-packages/django/utils/encoding.py", line 71, in force_unicode
s = unicode(s)
File "/usr/local/lib/python2.7/site-packages/django/utils/functional.py", line 206, in __unicode_cast
return self.__func(*self.__args, **self.__kw)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 81, in ugettext
return _trans.ugettext(message)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 286, in ugettext
return do_translate(message, 'ugettext')
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 276, in do_translate
_default = translation(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 185, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 162, in _fetch
app = import_module(appname)
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 3, in <module>
from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/helpers.py", line 3, in <module>
from django.contrib.admin.util import (flatten_fieldsets, lookup_field,
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/util.py", line 1, in <module>
from django.db import models
File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py", line 78, in <module>
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 33, in load_backend
return import_module('.base', backend_name)
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
TemplateSyntaxError: Caught ImproperlyConfigured while rendering: Error loading MySQLdb module: No module named MySQLdb
很抱歉长错误日志,但我想完成。我为此配置做错了什么?
答案 0 :(得分:2)
将WSGI脚本中的PYTHON_EGG_CACHE设置为Apache运行代码的用户可以写入的位置。
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User
应用程序无法在任何地方解压缩Python egg文件。