Приложение 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 непосредственно от автора, Грэма Дамплтона.)

Другие вопросы по тегам