我创建了一个名为“pyapps
”的 virtualenv,并在其中安装了 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
' 中.我在 /check/www
上 chmoded 777。
最后我创建了一个虚拟主机,其内容如下:
<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”时,我得到的只是内部服务器错误
。以下是我的 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
最佳答案
您需要添加虚拟环境路径,以便 apache/python 可以在那里找到模块。
将其放入您的 apache 配置中(在 VirtualHost
条目之外)
WSGIPythonPath /home/me/virtualenv/env1/lib/python2.7/site-packages
或者将其放入 wsgi 文件的 sys.path
中。
关于django - Apache 无法访问为 Django 项目设置的虚拟环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12407100/