Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Установка Джанго с mod_wsgi

Автор вопроса: marcoslhcОтветов: 3

Я написал приложение, используя 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

  • Теперь вы говорите, что у вас была опечатка, когда вы использовали "/C:/...". Если это так, подтвердите, что вы отредактировали свой вопрос и исправили его, иначе это сбивает с толку, почему я изначально указывал на это как на неправильное. Graham Dumpleton 29.07.2009

pythondjangoapachemod-wsgi

Ответы

Ответ 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. Вы должны предоставить разрешения на этот каталог.

Ответ 3 · рейтинг 1 · Sergey Konozenko

Документация mod_wsgi очень хороша. Попробуйте воспользоваться их руководством по быстрой настройке и перейдите оттуда: http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы