0

Apache2 と mod_wsgi の下のステージング サーバーにデプロイされた Django プロジェクトがあり、正常に動作していました。django-registration アプリケーションを使用します。

サーバーをnginxに切り替え、Djangoプロジェクトをgunicornで実行しようとしました。プロジェクトは正常にロードされましたが、/admin および /user/logout (デフォルトは django-registration の /account) にアクセスしようとすると、「URL という名前のモジュールがありません」というエラーが表示されます。私は何時間も髪を引き裂きました。urls.py の登録 URL 行をコメントアウトすると、登録モデルがないことを除いて、管理者は正常に表示されました。したがって、登録が失敗したため、管理者は失敗しただけでした。

理想的には、nginx/gunicorn のセットアップを使用してプロジェクトを本番環境にプッシュしたいと考えていますが、登録がうまくいかないようです。登録を削除し、ソースから 0.8 をインストールし、それを削除し、0.7 を pip でインストールしてみましたが、何も機能しませんでした。うまくいったのは、nginxを停止してからapacheを再度実行することでした。したがって、基本的に、プロジェクトは、使用されている Web サーバーの種類を除いて変更されていません。

登録は Apache/mod_wsgi で問題なく機能しているように見えるので、そのセットアップで本番環境にプッシュしたくなります...しかし、試してみると、gunicorn で登録が機能しない理由を知りたいと思っています。どんな助けでも大歓迎です。

4

1 に答える 1

1

sys.pathmod_wsgi を使用する場合、設定が異なるようです。展開時によくある間違いなので、sys.pathgunicorn の実行時にチェックすることをお勧めします。virtualenvを使用していますか? django-registration やその他の依存関係と同様に、virtualenv に gunicorn を必ずインストールしてください。virtualenv の bin ディレクトリで gunicorn スクリプトを実行すると、すべてが機能するはずです。

于 2011-05-25T08:20:43.103 に答える