0

我正在尝试安装一个开源 Django 应用程序(OSQA),但我收到此错误:

[Tue Sep 24 10:37:09 2013] [error] mod_wsgi (pid=82486): Exception occurred processing WSGI script '/home/fuiba/webapps/osqa/osqa.wsgi'.
[Tue Sep 24 10:37:09 2013] [error] Traceback (most recent call last):
[Tue Sep 24 10:37:09 2013] [error]   File "/home/fuiba/webapps/osqa/lib/python2.7/django/core/handlers/wsgi.py", line 232, in __call__
[Tue Sep 24 10:37:09 2013] [error]     self.load_middleware()
[Tue Sep 24 10:37:09 2013] [error]   File "/home/fuiba/webapps/osqa/lib/python2.7/django/core/handlers/base.py", line 42, in load_middleware
[Tue Sep 24 10:37:09 2013] [error]     raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
[Tue Sep 24 10:37:09 2013] [error] ImproperlyConfigured: Error importing middleware django.contrib.sessions.middleware: "No module named base"

这是我的osqa.wsgi

import os
import sys
sys.path.append('/home/fuiba/webapps/osqa/osqa')

from django.core.handlers.wsgi import WSGIHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'osqa.settings'
application = WSGIHandler()

httpd.conf我有WSGIScriptAlias

WSGISocketPrefix ${APACHE_RUN_DIR}
WSGIPythonPath /home/fuiba/webapps/osqa:/home/fuiba/webapps/osqa/lib/python2.7  
WSGIScriptAlias / /home/fuiba/webapps/osqa/osqa.wsgi

在 apache2 文件夹(/home/fuiba/webapps/osqa/apache2)中,我得到一个名称奇怪的文件: ${APACHE_RUN_DIR}.47892.0.1.sock

它是什么?

任何帮助表示赞赏。
谢谢!

4

1 回答 1

1

尝试像这样重新配置 WSGI,例如通过定义项目和 apache 的一般路径

osqa.wsgi:

import os, sys

#path to directory of the .wgsi file ('[directory]/')
wsgi_dir = os.path.abspath(os.path.dirname(__file__))

# path to project root directory (osqa '/')
project_dir = os.path.dirname(wsgi_dir)

# add project  directory to system's Path
sys.path.append(project_dir)
sys.path.append('/home/fuiba/webapps/osqa/osqa')


os.environ['PYTHON_EGG_CACHE'] = '/home/fuiba/webapps/osqa/osqa/.python-egg'
#add the setting.py file to your system's path
project_settings = os.path.join(project_dir,'settings')

#explicitly define the DJANGO_SETTINGS_MODULE
os.environ['DJANGO_SETTINGS_MODULE'] ='osqa.settings'

import django.core.handlers.wsgi
application =django.core.handlers.wsgi.WSGIHandler()

在 http.conf 中:

仅保留虚拟主机中的 WSGIScriptAlias,路径将已在 wsgi 文件中定义

WSGIScriptAlias / /home/fuiba/webapps/osqa/osqa.wsgi
WSGIScriptReloading On
WSGIProcessGroup domain.com
WSGIDaemonProcess domain.com user=user processes=10 threads=1 maximum-requests=500

如果也安装了 libapache2_mod_wsgi,它应该可以工作

于 2013-09-24T15:41:02.857 回答