Раньше у меня не было проблем с реализацией этой настройки, я установил новый сервер дома и хотел поработать над некоторыми проектами django.
Я использую virtualenv с virtualenvwrapper, модуль mod_wsgi, похоже, установлен правильно. вот виртуальный хост, который я использую
<VirtualHost *:80>
ServerName local.projectname.com
ServerAlias local.projectname.co.uk
WSGIDaemonProcess site-dev1 user=mike group=mike threads=20 python-path=/home/mike/envs/projectenv/lib/python2.6/site-packages
WSGIProcessGroup site-dev1
WSGIScriptAlias / /home/mike/Sites/path/project/django.wsgi
<Directory /home/mike/Sites/path/project>
Options +Indexes FollowSymLinks +ExecCGI
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory>
# Allow cross domain @font-face styles for Firefox
<FilesMatch "\.(ttf|otf|eot)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
При попытке перейти к проекту я получаю внутреннюю ошибку сервера 500, вот вывод из журналов ошибок apache
[Sun Jul 24 08:46:32 2011] [error] [client 127.0.0.1] Traceback (most recent call last):
[Sun Jul 24 08:46:32 2011] [error] [client 127.0.0.1] File "/home/mike/Sites/outsideline/queenonline/queenonline.wsgi", line 16, in <module>
[Sun Jul 24 08:46:32 2011] [error] [client 127.0.0.1] from django.core.handlers.wsgi import WSGIHandler
[Sun Jul 24 08:46:32 2011] [error] [client 127.0.0.1] ImportError: No module named django.core.handlers.wsgi
Я могу импортировать из django.core.handlers.wsgi импортировать WSGIHandler в оболочку без каких-либо ошибок. Насколько я понимаю, процесс и группа WSGIdaemon должны быть пользователями и владельцами групп файлов, я также установил своего пользователя apache и группа, чтобы работать как Майк: Майк, чтобы посмотреть, сработает ли это
У меня совсем нет идей, так что если кто-нибудь сможет пролить свет на это, я буду бесконечно благодарен!
Проверьте PYTHONPATH
Для отладки этой проблемы вы можете вывести вывод журнала из вашего сценария .wsgi в файл с помощью средства ведения журнала (средство ведения журнала Python). PYTHONPATH можно прочитать внутри Python с помощью sys.path
import sys
log = open("/tmp/log.txt", "wt") # ghetto logging
print >> log, sys.path # you'll see what you have PYTHONPATH when running the script
Затем вы можете проверить, действительно ли Python может открыть файл
import sys
log = open("/tmp/log.txt", "wt") # ghetto logging
try:
f = open("/path/to/django/__init__.py", "rt")
exception Exception, e:
print >> log, str(e)