Я написал приложение, используя Django 1.0. Он отлично работает с тестовым сервером django. Но когда я попытался перенести его в более вероятную производственную среду, сервер Apache не смог запустить приложение. Я использую сервер WAMP2.0. Я уже много лет работаю PHP-программистом и давно использую WAMPServer. Я установил mod_wsgi.so и, кажется, работает нормально (без ошибок служб), но я не могу настроить httpd.conf для просмотра моих скриптов python, расположенных вне корня сервера.
На данный момент я спокойно переопределяю корень документа и вместо этого обслуживаю приложение django из корня документа, поэтому строка httpd.conf должна выглядеть так:
WSGIScriptAlias / C:/Users/Marcos/Documents/mysite/apache/django.wsgi
но ответ сервера - 403 Forbidden
Ответ 1 · рейтинг 7 · Graham Dumpleton
У вас есть:
WSGIScriptAlias / /C:/Users/Marcos/Documents/mysite/apache/django.wsgi
Это неправильно, так как RHS не является допустимым путем Windows. Использовать:
WSGIScriptAlias / C:/Users/Marcos/Documents/mysite/apache/django.wsgi
То есть перед спецификатором диска Windows не должно быть косой черты.
Кроме этого, следуйте документации mod_wsgi, на которую указали другие.
Автор отредактировал вопрос, чтобы изменить то, что сейчас может показаться опечаткой в сообщении, а не проблемой с его конфигурацией.
Если это так, следующие причины ошибки 403 следующие.
Во-первых, вам также необходимо иметь:
<Directory C:/Users/Marcos/Documents/mysite/apache>
Order deny,allow
Allow from all
</Directory>
Если у вас его нет, то Apache не получает права на обслуживание скрипта из этого каталога и поэтому возвращает ЗАПРЕЩЕНО (403).
Во-вторых, у вас это есть, но вы не признаете, что у вас есть, и что этот каталог или файл сценария WSGI не могут быть прочитаны пользователем, который работает в службе Apache, как в Windows.
Ответ 2 · рейтинг 6 · S.Lott
Вы видели http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango ?
Вам нужно более одной строки, чтобы убедиться, что Apache будет работать хорошо.
Alias /media/ /usr/local/django/mysite/media/
<Directory /usr/local/django/mysite/media>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /usr/local/django/mysite/apache/django.wsgi
<Directory /usr/local/django/mysite/apache>
Order deny,allow
Allow from all
</Directory>
<Directory>, а также соответствующие права собственности и права доступа к файловой системе имеют важное значение.
В каталоге usr/local/django/mysite/apache находится ваше приложение Python/Django и самый важный файл django.wsgi. Вы должны предоставить разрешения на этот каталог.