Я искал на этом сайте решение, но не смог его найти. У меня есть сервер CentOS 6.4 с Apache 2.2.15, Django 1.6 и mod_wsgi 3.2. Я использую Apache для отображения статических файлов и mod_wsgi для отображения содержимого Django.
Я поместил файлы проекта Django в каталог /srv
из-за этой страницы. а>.
Когда я запускаю сервер разработки Django, тестовая страница, которую я написал, отображается правильно. Однако, когда я запускаю свой сервер Apache и посещаю 127.0.0.1, я получаю ошибку 403 Forbidden.
django.wsgi (в /srv/mysite)
import os
import sys
envpath = '/usr/lib/python2.6/site-packages'
pwd = os.path.dirname(os.path.abspath(__file__))
os.chdir(pwd)
sys.path = [env] + sys.path
os.environ['PYTHON_EGG_CACHE'] = '/srv/mysite/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
site.addsitedir(envpath)
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandlers()
httpd.conf
WSGIScriptAlias / /srv/mysite/django.wsgi
WSGIPythonPath /srv/mysite
<more aliases and tags in order to get the right static files to show>
В файле httpd.conf
указанный пользователь и группа по умолчанию являются apache
. Я запустил ls -l
в каталоге /srv
, и его владелец и группа были указаны как root
. Итак, я запустил sudo chown -R apache:apache /srv/mysite
, который изменил каталог и все подкаталоги, чтобы использовать apache
в качестве владельца и группы.
Однако, сколько бы я ни гуглил и ни пытался, я не могу справиться с этой ошибкой 403.
ИЗМЕНИТЬ:
Я обнаружил, что когда я отключаю SELinux, а переменная WSGIPythonPath
в файле http.conf
равна django.wsgi
, это приводит к ошибке 500 Internal Server. Однако, когда я изменяю его на wsgi.py
, мой веб-сайт отображается правильно. Мне интересно, почему так.
В любом случае, поскольку это будет производственная машина, я предпочитаю оставить SELinux включенным и выяснить, как получить соответствующие разрешения.
РЕДАКТИРОВАТЬ 2:
Я отредактировал свой файл django.wsgi
(измененный выше) аля эта ссылка
ИЗМЕНИТЬ 3:
Я попытался переместить файлы проекта в папку my/home/. Я чередовал попытки django.wsgi
и wsgi.py
, но все еще не могу пройти мимо ошибки 403 Forbidden. Я думал, что изначально это была проблема с правами доступа к каталогу /srv
, но оказалось, что это не так... Я пытаюсь понять это, но ничего не работает.
ИЗМЕНИТЬ 4:
На данный момент я решил просто использовать сервер разработки... но мне все еще нужно, чтобы это заработало, и я нахожусь в конце своей веревки. Есть ли кто-нибудь, кто может мне помочь?