SDice技術メモ

技術備忘録や仕事関連でやったこと

ApatchにDjangoプロジェクトをデプロイ(mod_wsgi)

ApatchDjangoプロジェクトをデプロイ(mod_wsgi)

前回(AWSへvirtualenvを使用してPython3環境作成 (virtualenv))の記事からの続き。
Python3とvirtualenvがインストールされてる状態です。
※ 以下管理者ユーザで実行

環境
OS:Amazon Linux 2
PythonPython 3.7.0
Apatch : 2.4.34
mod-wsgi: 4.6.4

Apatchをインストール

Apatchyumコマンドでインストールします。
Complete!が最後に表示されたら完了です。

AWSを使用している場合ブラウザからApatch公開画面を参照する為にはhttpの参照を許可する必要があります。

$ yum -y install httpd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
...
Complete!

httpd-develをインストール

httpd-develをyumコマンドでインストールします。
Complete!が最後に表示されたら完了です。

$ yum install -y httpd-devel
...
Complete!

python3-develをインストール

python3-develをyumコマンドでインストールします。
Complete!が最後に表示されたら完了です。

$ yum install -y python3-devel
...
Complete!

gccをインストール

gccyumコマンドでインストールします。
Complete!が最後に表示されたら完了です。

$ yum install -y gcc
...
Complete!

env環境作成と実行

venvコマンドで/var/www配下へenvコマンドを作成します。

$ mkdir /var/www/envs
$ cd envs
$ python3 -m venv myenv

mod_wsgiインストール

作成した環境をactivateした後、pipコマンドにて「mod_wsgi」をインストールする。
Successfully installed が表示されたら完了。

$ source myenv/bin/activate
$ pip install mod_wsgi

Apatchにmod_wsgiの設定ファイルを作成

「/etc/httpd/conf.d」配下に設定ファイル(xxxx.conf)ファイル作成

# venvで作成した環境モジュール
LoadModule wsgi_module /var/www/envs/myenv/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so 

# venvで作成した環境フォルダパス
WSGIPythonHome [env path] 

# Djangoで作成したプロジェクトフォルダパスを記載
WSGIPythonPath [Django Project Path]

# Djangoで作成したアプリケーションフォルダパスを記載
WSGIScriptAlias / [Django AP Path]/wsgi.py

# Djangoで作成したアプリケーションフォルダパスを記載
<Directory [Django AP Path]>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

Apatch再起動

設定を反映させて為に、Apatchを再起動させます。

$ service httpd restart