私が抱えている問題は、wsgiファイルがwsgiハンドラーを正しくインポートできないことです。
/var/log/apache2/error.log
レポート:
ImportError:django.core.handlers.wsgiという名前のモジュールがありません
www-data
これをグーグルで検索すると、いくつかの結果が表示されます。特定のファイルを読み取れないか、pythonpathが正しくないため、主に権限エラーを処理します。解決策のいくつかは曖昧であるか、私の状況では機能しません。
背景情報..
私の/usr/libディレクトリ。
/usr/lib/python2.4
/usr/lib/python2.5
/usr/lib/python2.6
/usr/lib/python-django
デフォルトのPythonバージョンは2.5.2です。通訳を通常のユーザーとして開くimport django.core.handlers.wsgi
と、問題なく実行できます。
Pythonバージョンに切り替えてwww-data
も同じで、django.core.handlers.wsgi
モジュールを問題なくインポートできます。
bashrcで、PYTHONPATHをすべてのdjangoサイトを含むホームディレクトリに設定しました...
export PYTHONPATH=/home/meder/django-sites/:$PYTHONPATH
したがって、ディレクトリ構造は次のとおりです。
django-sites/
test
test
によって作成されたディレクトリですdjango-admin createproject
。
私の仮想ホスト:
<VirtualHost *:80>
ServerName beta.blah.com
WSGIScriptAlias / /home/meder/django-sites/test/apache/django.wsgi
Alias /media /home/meder/django-sites/test/media/
</VirtualHost>
/home/meder/django-sites/test/apache/django.wsgi
ファイル自体:
import os, sys
sys.path.append('/usr/local/django')
sys.path.append('/home/meder/django-sites')
sys.path.append('/home/meder/django-sites/test')
os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
最後に、私のOSはDebian Lennyで、バックポートからdjango1.1.1を取得しました。それが十分な情報であることを願っています。
更新#1-最初の返信ごとに、次の結果が得られldd /usr/lib/apache2/modules/mod_wsgi.so
ます:
meder@site:/usr/lib/apache2/modules$ ldd mod_wsgi.so
libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7d99000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7d81000)
libdl.so.2 => /lib/libdl.so.2 (0xb7d7c000)
libutil.so.1 => /lib/libutil.so.1 (0xb7d78000)
libm.so.6 => /lib/libm.so.6 (0xb7d52000)
libc.so.6 => /lib/libc.so.6 (0xb7c14000)
/lib/ld-linux.so.2 (0xb7efd000)
したがって、2.4ではなくPython2.5に対してコンパイルされます。