Развертывание Django на EC2 с помощью Bitnami Djangostack: сценарий WSGI не может быть загружен


В течение последних нескольких дней я пытался развернуть приложение Django на Amazon EC2 с помощью Bitnami Djangostack. Когда я захожу на свою домашнюю страницу (скажем http://example.com ) я вижу страницу bitnami по умолчанию (/opt/bitnami/apache2/htdocs/index.html ), однако, когда я открываю http://example.com/portnoy , я получаю "внутреннюю ошибку сервера". Но известно, что если mod_wsgi настроен правильно, то значение DocumentRoot из httpd.conf игнорируется, таким образом, я должен видеть мое приложение Django при обращении к http://example.com . по сути, основная ошибка заключается в следующем - "целевой сценарий WSGI не может быть загружен как модуль Python". Два вопроса: 1) Есть идеи, как исправить эти ошибки mod_wsgi (журналы Apache приведены ниже)? 2) Как отключить по умолчанию /opt / bitnami/apache2/htdocs / index.html Страница и показать мою домашнюю страницу из приложения django при доступе к http://example.com ? Заранее спасибо!

Детали

На моем EC2 экземпляр I " m работает под управлением 64-разрядной Ubuntu 12.04 с DjangoStack 1.4-1. Мой проект Django находится здесь - / opt / bitnami / apps/django/django_projects / portnoy.

root@example:/opt/bitnami/apps/django/django_projects/portnoy# ls
manage.py README.md settings.py site_media users Procfile sandbox static test.py topics urls.py views.py __init__.pyc templates testviews.py

Журналы ошибок Apache ( / opt / bitnami / apache2 / logs/error_log):

[Wed Jul 04 02:29:00 2012] [error] [client 140.180.6.212] File does not exist: /opt/bitnami/apache2/htdocs/favicon.ico
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212] mod_wsgi (pid=3990): Target WSGI script '/opt/bitnami/apps/django/scripts/django.wsgi' cannot be loaded as Python module.
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212] mod_wsgi (pid=3990): Exception occurred processing WSGI script '/opt/bitnami/apps/django/scripts/django.wsgi'.
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212] Traceback (most recent call last):
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]   File "/opt/bitnami/apps/django/scripts/django.wsgi", line 8, in <module>
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]     import django.core.handlers.wsgi
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]   File "/opt/bitnami/apps/django/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 8, in <module>
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]     from django import http
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]   File "/opt/bitnami/apps/django/lib/python2.7/site-packages/django/http/__init__.py", line 119, in <module>
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]     from django.http.multipartparser import MultiPartParser
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]   File "/opt/bitnami/apps/django/lib/python2.7/site-packages/django/http/multipartparser.py", line 13, in <module>
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]     from django.utils.text import unescape_entities
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]   File "/opt/bitnami/apps/django/lib/python2.7/site-packages/django/utils/text.py", line 4, in <module>
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]     from gzip import GzipFile
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]   File "/opt/bitnami/python/lib/python2.7/gzip.py", line 10, in <module>
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]     import io
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]   File "/opt/bitnami/python/lib/python2.7/io.py", line 60, in <module>
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212]     import _io
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212] ImportError: /opt/bitnami/python/lib/python2.7/lib-dynload/_io.so: undefined symbol: PyUnicodeUCS2_AsEncodedString
[Wed Jul 04 02:29:15 2012] [error] [client 140.180.6.212] File does not exist: /opt/bitnami/apache2/htdocs/favicon.ico
[Wed Jul 04 02:44:00 2012] [error] [client 140.180.6.212] File does not exist: /opt/bitnami/apache2/htdocs/favicon.ico
Позвольте мне быстро представить содержание файлов, чтобы сделать дело более конкретным.

Это мой / etc / apache2 / sites-available / default файл

<VirtualHost *:80>
ServerAdmin root@example.com
ServerName example.com

Alias /site_media/ /opt/bitnami/apps/django/django_projects/portnoy/site_media/
Alias /static/ /opt/bitnami/apps/django/lib/python2.7/site-packages/django/contrib/admin/static/
Alias /robots.txt /opt/bitnami/apps/django/django_projects/portnoy/site_media/robots.txt
Alias /favicon.ico /opt/bitnami/apps/django/django_projects/portnoy/site_media/favicon.ico

CustomLog "|/usr/sbin/rotatelogs /opt/bitnami/apps/django/django_projects/logs/access.log.%Y%m%d-%H%M%S 5M" combined
ErrorLog "|/usr/sbin/rotatelogs /opt/bitnami/apps/django/django_projects/logs/error.log.%Y%m%d-%H%M%S 5M"
LogLevel warn

WSGIProcessGroup example.com
WSGIScriptAlias / /opt/bitnami/apps/django/scripts/django.wsgi

<Directory /opt/bitnami/apps/django/django_projects/portnoy/site_media>
Order deny,allow
Allow from all
Options -Indexes FollowSymLinks
</Directory>

<Directory /opt/bitnami/apps/django/django_projects/portnoy/conf/apache>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

Это мой / opt / bitnami / apps/django/scripts / django.wsgi файл

import os, sys

sys.path.append('/opt/bitnami/apps/django/lib/python2.7/site-packages/')
sys.path.append('/opt/bitnami/apps/django/django_projects')
sys.path.append('/opt/bitnami/apps/django/django_projects/portnoy')
os.environ['DJANGO_SETTINGS_MODULE'] = 'portnoy.settings'

import django.core.handlers.wsgi

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

Вот соответствующая часть /opt/bitnami/apache2/conf/httpd.conf файл:

ServerRoot "/opt/bitnami/apache2"
Listen 80
ServerName example.com
DocumentRoot "/opt/bitnami/apache2/htdocs"
LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonHome /opt/bitnami/python
Include "/opt/bitnami/apache2/conf/ssi.conf"
Include "/opt/bitnami/apps/django/conf/django.conf"
Include "/opt/bitnami/apache2/conf/bitnami/httpd.conf"

Примечание: я использую example.com на протяжении всего этого поста ссылаться на домен, которым я на самом деле владею.

1 2

1 ответ:

На этот вопрос был дан ответ:

Https://groups.google.com/forum/?fromgroups#! topic/modwsgi/YLDd6ojQrzo