2

我创建了一个名为“ pyapps”的虚拟环境,并在其中安装了 pinax 和 django。我已经安装了 apache 2 和 mod_wsgi apache。我在我的 django 项目(testproject)中创建了一个名为“”的目录,并将“ django.wsgi”文件放在该目录中。这是内容我的wsgi文件:

import os
import sys

# put the Django project on sys.path
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../../")))

os.environ['DJANGO_SETTINGS_MODULE'] = 'textpisodes.settings'

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

然后我创建了一个目录' /check/www'并将我的项目文件夹和pyapps文件夹放在' /check/www'中。我在 777 上设置了 chmoded /check/www

最后我创建了一个虚拟主机,它的内容如下:

<VirtualHost *:80>
    ServerAdmin myemail
    ServerName djangoserver

    WSGIDaemonProcess textpisodes user=rajat threads=10 python-path=/check/www
    WSGIProcessGroup textpisodes

    WSGIScriptAlias / /check/www/textpisodes/apache/django.wsgi
    <Directory /check/www/textpisodes/apache>
        Order deny,allow
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
</VirtualHost>

现在,当我尝试访问“http://djangoserver”时,我得到的只是Internal Server Error。这是我的 apache 日志文件的内容。

[Thu Sep 13 18:39:51 2012] [error] [client 127.0.0.1] mod_wsgi (pid=4890): Target WSGI script '/check/www/textpisodes/apache/django.wsgi' cannot be loaded as Python module.
[Thu Sep 13 18:39:51 2012] [error] [client 127.0.0.1] mod_wsgi (pid=4890): Exception occurred processing WSGI script '/check/www/textpisodes/apache/django.wsgi'.
[Thu Sep 13 18:39:51 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Thu Sep 13 18:39:51 2012] [error] [client 127.0.0.1]   File "/check/www/textpisodes/apache/django.wsgi", line 9, in <module>
[Thu Sep 13 18:39:51 2012] [error] [client 127.0.0.1]     import django.core.handlers.wsgi
[Thu Sep 13 18:39:51 2012] [error] [client 127.0.0.1] ImportError: No module named django.core.handlers.wsgi
4

1 回答 1

3

您需要添加您的虚拟环境路径,以便 apache/python 可以在那里找到模块。

要么把它放在你的 apache 配置中(在VirtualHost入口之外)

WSGIPythonPath /home/me/virtualenv/env1/lib/python2.7/site-packages

或者把它放在sys.path你的 wsgi 文件中。

于 2012-09-13T13:26:08.207 回答