Apache 2 + mod_wsgi + WSGIScriptAlias - PullRequest
       41

Apache 2 + mod_wsgi + WSGIScriptAlias

6 голосов
/ 06 февраля 2012

В настоящее время я изучаю, подходят ли Python и Django для проекта, над которым я собираюсь работать (пока это выглядит хорошо). В качестве средства тестирования я хочу запустить python на реальном сервере (apache2 в ubuntu), используя mod_wsgi, но я просто не могу заставить его работать. Вот мой httpd.conf (находится по адресу /etc/apache2/httpd.conf):

WSGIScriptAlias /test/tc-test/ /var/www/stage/hello/tc-test/django.wsgi
WSGIPythonPath /var/www/stage/test/tc-test/

<Directory /var/www/stage/test/tc-test>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

Мой django.wsgi выглядит следующим образом:

import os
import sys

sys.path.append('/var/www/stage/test/tc-test')

os_environment['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi

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

URL для этого каталога будет http://stage.website.com/test/tc-test

Как ни странно, когда я перезагружаю сервер apache, я получаю 500 внутренних ошибок сервера. Не только для этого подкаталога, но и для всех других подкаталогов на сервере. Я посмотрел журнал ошибок apache, но по какой-то причине не регистрируется ни одной ошибки. Мне удалось сузить виновников до WSGIScriptAlias ​​и WSGIPythonPath: когда я удаляю их обоих, 500 внутренних ошибок сервера исчезают, а когда я добавляю любую из них, они появляются снова. Я подтвердил, что mod_wsgi работает так, как должен, и, вероятно, я просматриваю кое-что очень простое Я просто не могу узнать что. Любая помощь в этом?

1 Ответ

12 голосов
/ 07 февраля 2012

Попробуйте:

WSGIScriptAlias /test/tc-test /var/www/stage/hello/tc-test/django.wsgi

Вы не должны иметь косую черту в первом аргументе.

...