1

これは apache/mod_wsgi/virtualenv/django スタックです。virtualenv site-packages dir に virtualenv_path_extensions.pth ファイルがあります。apache confには

WSGIScriptAlias / /path/to/my.wsgi

my.wsgi は

site.addsitedir('/path/to/virtualenv/site-packages')

ここで、Python シェルを起動してサイトをインポートし、上記の行を呼び出すと、sys.path は正しく見えます: virtualenv_path_extensions.pth 内のすべてのパスが読み込まれました

ただし、Apache では、django がパス上にないと主張しているため、500 エラーが発生します。my.wsgi の addsitedir 行の後に sys.path をログに記録すると、virtualenv_path_extensions.pth の最初の行が追加されたように見えますが、残りは追加されていません!

何が原因でしょうか?

4

1 に答える 1

1

ああ、selinux :D

ロードされていないパスには間違ったコンテキストがあり、apache はそれらに触れることができませんでした ...

** ミステリーが発生した場合は、これらの selinux ログを確認することを忘れないでください **

于 2010-08-11T21:38:34.810 に答える