Назад | Перейти на главную страницу

Не удается получить URL-адреса для работы в Django Apache EC2

Я впервые пытаюсь настроить веб-сервер с помощью Django. Я бился головой об стену, пытаясь настроить это некоторое время, и, похоже, я не могу найти никаких ресурсов, которые объясняют это в пошаговом формате для новичков.

Я установил и настроил apache и mod_wsgi на своем экземпляре EC2. Как сопоставить URL-адреса моего приложения в файле urls.py с apache? Локально я могу заставить мое приложение работать при вводе 127.0.0.1:8000/flickr/photousers запустив его на сервере разработки Django. Я пытаюсь заставить это работать на моих общедоступных DNS как http://ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com/flickr/photouser с apache и mod_wsgi.

Когда я перезапускаю свой сервер Apache, я также получаю эту ошибку, но со статусом ОК [error] (EAI 2)Name or service not known: Could not resolve host name *.80 -- ignoring

Ниже перечислены соответствующие фрагменты

файл django.wsgi

import os,sys

apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append(/home/djangotest/flickr)
#sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'flickr.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

файл httpd.conf

<VirtualHost *.80>
    DocumentRoot /home/djangotest/flickr
    ServerName ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com
    ErrorLog /home/djangotest/flickr/logs/apache_error.log
    CustomLog /home/djangotest/flickr/logs/apache_access.log combined
    WSGIScriptAlias / /home/djangotest/flickr/apache/django.wsgi

    <Directory /home/djangotest/flickr/media>
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /home/djangotest/flickr/apache>
        Order deny,allow
        Allow from all
    </Directory>

    LogLevel warn

    WSGIDaemonProcess ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com user=djangotest processes=2 threads=25
    WSGIProcessGroup ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com

    Alias /media/ /home/djangotest/flickr/media/
</VirtualHost>

urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    # Example:
    (r'flickr/', include('flickrphotobrowser.urls')),
)

urls.py (находится в моем приложении)

from django.conf.urls.defaults import *

from flickrphotobrowser.views import *

urlpatterns = patterns('flickrphotobrowser.views',
        (r'^phototags/$', contenttags),
        (r'^photouser/$', contentuser),
)

settings.py

ROOT_URLCONF = 'flickr.urls'

TEMPLATE_DIRS = (
        os.path.join(os.path.basename(__file__), 'templates'),
    #'home/nai/Projects/flickr/flickrphotobrowser/templates', # THIS IS FOR LOCAL ONLY
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'flickr.flickrphotobrowser',
)

Должен ли я включать какие-либо другие фрагменты кода, чтобы помочь в устранении проблемы? Спасибо.

В httpd conf измените:

<VirtualHost *.80>

к

<VirtualHost *:80>

и перезапустите Apache.

Если это не поможет, вы также можете попробовать добавить:

sys.path.append('/home/djangotest')

в ваш файл django.wsgi.