Windows10でDjangoの動作環境を構築する②【ソフトの連携編1】

Django

実現したいこと+連携ソフト

実現したいこと:
Windwos10 環境にDjangoで動作するWEBシステム環境を構築したい。

この記事ではapacheとmod_wsgiの連携について説明していきます。

下記記事で、Windows10でDjangoを動作させるために必要なソフトのインストールについて説明しています。
まだ見ていない方は先にこちらをご覧ください。


では早速ソフトウェアの連携を解説していきます。

ソフトの連携作業

前回の記事でmod_wsgiのインストール手順について紹介していなかったので、まず最初にmod_wsgiのインストール方法について説明します。


mod_wsgiのインストール

今回はapacheとDjangoを使ってWEBシステムを構築したいと考えているので、
apacheでPythonを動作させる必要があります。

apacheはデフォルトでpythonを実行できません。
なので、実行できるようにモジュールを追加してあげる必要があります。


さて、さっそくインストールしていきましょう。
最初に下記ページにアクセスし、対象のファイルをダウンロードしてきます。

Archived: Python Extension Packages for Windows - Christoph Gohlke


移動できたら下記画像を参考にリンクをクリックし、ダウンロードしていくのですが、
ダウンロードするmod_wsgiはどれでもよいわけではありません。

インストールしているpythonのバージョンとご愛用Windows10のビット数で変わります。
(今回はWindows10のビット数が64bitであることを前提にしています)


リンク先のフォーマットは以下の通りになっています。
ご自分の環境とよく照らし合わせてからダウンロードしてくださいね。

mod_wsgi-△△△-cp〇〇-cp〇〇-win amd■.whl
△△△・・・mod_wsgiのバージョン
〇〇 ・・・ mod_wsgiが対応しているpythonのバージョン

(インストールしているpythonのバージョン)
■■ ・・・ mod_wsgiが対応しているWindows10のビット数


ダウンロードが完了したら、ファイル名の拡張子を.zipに変更し、zipファイルを解凍します。

解凍したフォルダを開き、mod_wsgi\server\mod_wsgi.cp38-win_amd64.pydmod_wsgi.soに変更します。

※今回はpythonのバージョン3.8、Windows10のビット数は64ビット環境対応のmod_wsgiをダウンロードしています。
ファイル名はご自身がインストールしたmod_wsgiによって変化します。


apacheとmod_wsgiの連携


mod_wsgiのインストール作業が完了したので、ソフトの連携作業を行っていきます。

apacheサービスの登録

apacheをコマンド操作したほうが効率がいいので、apacheをサービス登録します。

まず最初に管理者権限でDOSプロンプトを起動し、インストールしたapacheのbinに移動します。

移動が完了したら、下記コマンドを実行して、apacheをサービス登録します。
httpd -k install


次にapache/binを環境変数に設定を行って設定は完了です。

apacheにモジュールを設定する

先ほど作成したmod_wsgi.soファイルをapacheをインストールしたフォルダにインストールします。
インストールする場所はC:\Apache24\modulesです
(※apacheをインストールした場所によって変わります)


mod_wsgi.soファイルを所定の位置にインストールし終わったら、次の作業に移ります。

C:\Apache24\conf\httpd.confのファイルを開き、下記コードを追加します。
LoadModule wsgi_module modules/mod_wsgi.so
(httpd.confファイルを開くと、モジュールがロードされている箇所があるので、その最後尾に追加します)

以上でapacheとmod_wsgiの連携は完了しました。


動作確認

最後に動作確認を行います。
面倒な方はやらなくてもいいですが、後々もっと面倒になる可能性があるので、やはり動作確認をやっておくこと推奨です。

先ほど編集したhttpd.confファイルを再び編集します。
下記の画像を参考に変更を行います。


次にpythonのCドライブ直下にwsgi_appフォルダを作成して、その中にwsgi_handler.pyという名称のpythonファイルを作成します。
pythonファイルの中身は以下の通りです。

def application(environ, start_response):
    status = '111 OK'
    output = b'Hello World!'
    response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]


pythonファイルを作成し終わったら、管理者権限でDOSプロンプトを開き、下記コマンドを実行します。
httpd -k start
上記コマンドを実行することにより、apacheが起動されます。
(※因みにapacheを終了するにはhttpd -k shutdownと打ち込みます)


最後に、ブラウザの検索バーにlocalhost/wsgiと打ち込み画面上にHello World!と表示されれば、きちんと動作しています。

コメント

タイトルとURLをコピーしました