Назад | Перейти на главную страницу

Проблема с запуском mod_wsgi с apache

Раньше у меня не было проблем с реализацией этой настройки, я установил новый сервер дома и хотел поработать над некоторыми проектами 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)