2

ここ数日間、Bitnami Djangostackを使用して Amazon EC2 に Django アプリケーションをデプロイするのに苦労しています。ホームページ ( http://example.comなど) にアクセスすると、デフォルトの bitnami ページ ( /opt/bitnami/apache2/htdocs/index.html ) が表示されますが、 http://example.com/を開くと、portnoy、「Internal Server Error」が表示されます。しかし、mod_wsgi が正しくセットアップされている場合、httpd.conf の DocumentRoot 値は無視されることが知られているため、http://example.comにアクセスすると Django アプリケーションが表示されるはずです。基本的に、主なエラーはこれです-「ターゲットWSGIスクリプトをPythonモジュールとしてロードできません」。2 つの質問: 1) これらの mod_wsgi エラーを修正する方法はありますか (Apache ログは以下にあります)。2) デフォルトを無効にする方法/opt/bitnami/apache2/htdocs/index.htmlページを開き、 http://example.comにアクセスするときに django アプリケーションからホームページを表示しますか? 前もって感謝します!

詳細

私の EC2 インスタンスでは、DjangoStack 1.4-1 で 64 ビットの Ubuntu 12.04 を実行しています。私の 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 を使用して、実際に所有しているドメインを参照しています。

4

1 に答える 1

2

これは次の場所で回答されています。

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

于 2012-07-04T23:45:06.290 に答える