web-dev-qa-db-ja.com

Django、wsgi、py。違いは何ですか?

Djangoアプリケーションをcpanelシステムで起動して実行しようとしています。mod_wsgiをインストールし、ここのガイドに従っています: http://www.nerdydork .com/settings-up-Django-on-a-whm-cpanel-vps-liquidweb.html

しかし、次に何をすべきかわからないので、今は混乱しています。アプリケーションには.pyファイルがあり、次の方法で実行できます:python manage.py runserver 211.144.131.148:8000

ただし、これはコマンドライン経由でポート8000​​にバインドされます。代わりにApacheを使用したいと思います。

問題は、そのチュートリアルでは、Apacheに.pyファイルを認識させ、必要に応じてアプリケーションを実行する方法については詳しく説明していません。次に何をしますか?

3
Kenny

mod_wsgiを使用している場合、Apacheに.pyファイルを認識させたくありません。紛らわしいですよね?ここで、説明させてください...

WSGIモジュールは、ApacheとPythonプロセスの間の一種の相互接続を提供します。これは、いわば標準化されたゲートウェイインターフェイス(Webサーバーゲートウェイインターフェイス)です。

これが公式のDjango Django 1.1 with Apache&mod_wsgi の設定に関するドキュメントです。

通常、必要なのは次のとおりです。

WSGIScriptAlias / /path/to/mysite/Apache/Django.wsgi

次に、Djangoアプリケーションのフロントとして機能するWSGIアプリケーションを定義する必要があります:

 import os 
 import sys 
 
 os.environ ['Django_SETTINGS_MODULE'] = 'mysite.settings' 
 
 import Django .core.handlers.wsgi 
 application = Django.core.handlers.wsgi.WSGIHandler()

*上記のリンク先のドキュメントからこれらの例を取り上げたことに注意してください。

これにより、ApacheがWSGIアプリに接続され、アプリケーションがそのWSGIアプリに関連付けられます。 WSGIScriptAlias行は、URLルーティングを管理するWSGIアプリケーションに「/」以下のすべての要求を送信するようにApacheに指示するだけです。

私は通常、FastCGIとPython flupモジュールを使用してこのような展開を行います。これはもう少し複雑ですが、時間があればチェックする価値があります。

3
McJeff