クロ今回のテーマは「uWSGIでDjangoアプリを動かす基礎」です。Djangoアプリケーションのデプロイの概要」でnginxとuWSGIでDjangoアプリを動かす概要を見てきました。今回はuWSGIでDjangoを動かしていきたいと思います。前提まずディレクトリ構成を確認しておきましょう。以下のようなディレクトリである前提で話を進めたいと思います。#プロジェクトルート│└mysite│─base│─thread│─search│─static└─mediauWSGIの導入まずはuWSGIを導入しましょう。uWSGIのインストールにはpythonとC言語のコンパイラが必要です。今回はUbuntu環境にインストールする前提で話を進めていきます。他の環境にインストールする場合はhttps://uwsgi-docs.readthedocs.io/en/latest/Install.htmlを参考にしてください。uwsgiこれでuWSGIのインストールは完了です。今回はプロジェクトのvenv環境にuWSGIをインストールしましたが、OSのグローバルな環境や異なるvenv環境にインストールしても構いません。Djangoプロジェクトと異なるvenv環境にインストールした場合には動作させるためのオプションが変わりますのでご注意ください。uWSGIでDjangoアプリケーションを起動するではuWSGIでDjangoアプリを起動してみましょう。今回は8081ポートからブラウザでアクセスできるように起動します。nginxとの連携については別の機会に触れることとし、まずはuWSGI単体でDjangoアプリ起動することを考えます。Djangoプロジェクトと同じvenv環境にインストールした場合このケースではuWSGIとDjangoアプリの環境が同じなので以下のように起動すればOKです。{Djagoプロジェクトルートパス}chdirオプションはuwsgiコマンドの実行場所がDjangoプロジェクトのルートであれば必要ありません。mysite/mysite/wsgi.pyを直接指定する場合はmoduleオプションではなくwsgi-fileオプションでファイル名を指定する点もご注意ください。Djangoプロジェクトと異なる環境にuWSGIをインストールした場合この場合はuWSGI起動時にhomeオプションを指定して、どのpythonを使ってDjangoアプリを起動するか指定しなければいけません。OSに直接uWSGIをインストールしている状況では以下のようなコマンドで起動します。{Djagoプロジェクトルートパス}uWSGIの動作確認この状態でWEBブラウザでlocalhost:8000にアクセスして確認してみましょう。以下のような図となるはずです。4-2CSSが適用されていませんね。いうことでしょうか?実はstaticなファイルの置き場所はuWSGIかNginxどちらかで別途設定してあげる必要があります。詳細は次回の「Staticファイルを扱う」で見ていきます。uwsgi.iniの設定これまでuWSGIの起動にはコマンドにオプションをつけて起動してきました。毎回この長いオプションをつけて起動するのは大変です。起動用の設定ファイルを作成しましょう。uWSGIを起動するための設定はuwsgi.iniファイルに書きます。このファイルを起動時に読み込むことでコマンドにオプションを渡すのと同等のことが出来るようになります。0.0.0.0:8000上記のuwsgi.iniは起動する最低限のオプションに留めました。本番環境では上記設定では不足であることに注意してください。uWSGIはとても多機能なサーバであるため多くのオプションがあります。Optionsで確認することができます。設定ファイルを使ってuWSGIを起動しましょう。以下コマンドで起動します。今回はvenv環境にインストールしたuWSGIを用いるためアクティベートした状態で起動します。uwsgi.ini最後に今回はuWSGIの基本的な使用について見てきました。次回はStaticファイルの扱いについて見ていきたいと思います。確実にマスターしていきましょう。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。DjangoのStaticファイルの扱い検索:このブログを書いてる人クロLinuxが好きなプログラマ。スマートフォンアプリやWEB関連の開発をやっています。「クロの思考ノート」も運営してます。お仕事のご依頼は下記までお願いします。