Приложение Django, размещенное на Ubuntu VM с Apache и mod_wsgi, не отображается
Я загрузил свое первое приложение Django, но у меня возникли проблемы с доступом к нему. Приложение называется опросом и было загружено на Ubunto VM
Бег Apache
с mod_wsgi
, Моя виртуальная машина была обнародована с использованием пропуска Proxy на http://phaedrus.scss.tcd.ie/bias_experiment
В соответствии с urls.py
файл ниже, опрос должен быть доступен по адресу http://phaedrus.scss.tcd.ie/bias_experiment/surveythree/ Когда я получаю доступ к нему локально, он работает на http://127.0.0.1:8000/surveythree/
В последнее время я опубликовал два вопроса, связанных с (1) (2), и получил большую помощь по смежным вопросам. Однако приложение все еще не видно, и я не понимаю, почему.
Шаги, которые я предпринял
- Загрузил проект в /var/www/ (структура проекта ниже)
- Установлено virtualenv
- Установил mod_wsgi
- Установлены любые другие связанные пакеты
- Создан файл виртуального хоста (ниже)
- Создан файл index.wsgi (ниже)
- Перезапущенный апач
- Побежал
a2ensite bias_experiment
- Перезапущенный апач
Однако, когда пользователь посещал http://phaedrus.scss.tcd.ie/bias_experiment/surveythree/ он получал страницу с ошибкой Apache 404, а посещение http://phaedrus.scss.tcd.ie/bias_experiment/ показывало ему файл система,
Затем я добавил прямую ссылку на файл wsgi, добавив /etc/apache2/sites-available/default
WSGIScriptAlias /bias_experiment/ /var/www/bias_experiment/src/bias_experiment/index.wsgi
Теперь, когда пользователь посещает http://phaedrus.scss.tcd.ie/bias_experiment/ он, по крайней мере, видит, что Django работает. Однако посещение http://phaedrus.scss.tcd.ie/bias_experiment/surveythree/ прежнему приводит к появлению страницы ошибки Apache 404.
Кто-нибудь может увидеть, что не так с моей настройкой? Я следовал нескольким урокам и тщательно изучил это, но не могу понять это.
Ниже приведены мои настройки. Пожалуйста, не стесняйтесь запрашивать дополнительную информацию.
Спасибо
Мой файл VirtualHost находится в / etc / apache2 / sites-available/bias_experiment
<VirtualHost *:80>
ServerAdmin myemail@gmail.com
ServerName phaedrus.scss.tcd.ie/bias_experiment
ServerAlias phaedrus.scss.tcd.ie
WSGIScriptAlias /bias_experiment/ /var/www/bias_experiment/src/bias_experiment/index.wsgi
Alias /static/ /var/www/bias_experiment/src/bias_experiment/static/
<Location "/static/">
Options -Indexes
</Location>
</VirtualHost>
Мой файл index.wsgi находится по адресу /var/www/bias_experiment/src/bias_experiment/index.wsgi
import os
import sys
import site
# This was kept in order to add the src folder
sys.path.append('/var/www/bias_experiment/src')
sys.path.append('/var/www/bias_experiment/src/bias_experiment')
os.environ['DJANGO_SETTINGS_MODULE'] = 'bias_experiment.settings'
# Activate your virtual env
activate_env=os.path.expanduser("/var/www/bias_experiment/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Мой файл urls.py находится по адресу /var/www/bias_experiment/src/bias_experiment/urls.py
urlpatterns = patterns('',
url(r'^polls/', include('polls.urls', namespace="polls")),
url(r'^admin/', include(admin.site.urls)),
url(r'^surveythree/$', SurveyWizard.as_view([SurveyForm1, SurveyForm2, SurveyForm3, SurveyForm4, SurveyForm5])),
)
Мой журнал ошибок Apace tail /var/log/apache2/error.log
(bias_experiment)spillab@kdeg-vm-18:/var/www/bias_experiment$ sudo tail /var/log/apache2/error.log
[Sun Jun 15 17:37:26 2014] [error] [client 134.226.38.233] Target WSGI script not found or unable to stat: /var/www/bias_experiment/src/bias_experiment/index.wsgisurveythree
[Sun Jun 15 17:37:50 2014] [error] [client 134.226.38.233] Target WSGI script not found or unable to stat: /var/www/bias_experiment/src/bias_experiment/index.wsgisurveythree
[Sun Jun 15 18:38:11 2014] [error] [client 134.226.38.233] Target WSGI script not found or unable to stat: /var/www/bias_experiment/src/bias_experiment/index.wsgisurveythree
[Sun Jun 15 18:39:53 2014] [error] [client 134.226.38.233] Target WSGI script not found or unable to stat: /var/www/bias_experiment/src/bias_experiment/index.wsgisurveythree
[Sun Jun 15 18:40:00 2014] [error] [client 134.226.38.233] Target WSGI script not found or unable to stat: /var/www/bias_experiment/src/bias_experiment/index.wsgisurveythree
[Sun Jun 15 18:40:01 2014] [error] [client 134.226.38.233] Target WSGI script not found or unable to stat: /var/www/bias_experiment/src/bias_experiment/index.wsgisurveythree
(bias_experiment)spillab@kdeg-vm-18:/var/www/bias_experiment$
Структура моего проекта
Спасибо!
1 ответ
Я думаю, что виртуальный хост не запускается, потому что имя сервера, которое вы используете, является основным именем этого сервера. Таким образом, мы можем, вероятно, удалить это в целом, и нам нужно сосредоточиться на том, что в /sites-available/default
, И я думаю, что единственное, что не так, это то, что нам не нужен завершающий слеш в псевдониме:
WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi
(Возможно, ранее я указывал на это вдвойне неправильно, но на этот раз я нашел рекомендацию в документации к mod_wsgi непосредственно от автора, Грэма Дамплтона.)