UNISIA-SE Tech Blog

気まぐれお勉強日記

[5] Apache + Django + PostgreSQLで本番環境を構築 (インストール編)

1. 前提条件


▼ 以下の環境下であることが前提。
・OS:CentOS7.4
・ドメイン:example.com
・Webサーバー:Apache2.4.6
・開発言語:Python3.6(venv)、Python2.7(標準搭載)
・FW:Django2.0
・仮想環境フォルダ:/var/www/vops
・プロジェクトフォルダ:/var/www/vops/ops

※「次ページ」以降の下記ページは、この環境を作ることを目的とした関連記事。
[1] VPS契約とCentOSインストール + 初期設定
[2] CentOS7にApacheインストール + アクセス周りの設定
[3] Let's EncryptのSSL/TLS導入と定期更新
[4] Python、Djangoインストール + Django起動確認
[6] Apache + Django + PostgreSQLで本番環境を構築 (設定編))

2. アプリケーション作成


実際にプログラムの成果物を配置することになるアプリケーションを作成する。
※ ここでは、macuos という名称のアプリケーションを作成する。

$ source /var/www/vops/bin/activate    # 仮想環境起動
$ python manage.py startapp /var/www/vops/ops/macuos    # アプリケーションを作成

この技術ブログも実際に macuos というアプリケーションを作成し、その配下で動作している。

3. mod_wsgiインストール


Python3上では事前に httpd-devel をインストールする必要があるため mod_wsgi の前に httpd-devel をインストールする。

$ source /var/www/vops/bin/activate # 仮想環境起動
$ yum install -y httpd httpd-devel # httpd-develをインストール
$ pip3.6 install mod_wsgi # pipでmod_wsgiをインストール

4. PostgreSQLインストール


「[1] VPS契約とCentOSインストール + 初期設定」の通り、標準の sqlite は使用しませんので、PostgreSQL をインストールする。

$ yum -y install postgresql-server 

5. データベース、ユーザーの作成


データベース MACUOSDB とそこにアクセス可能なユーザーpadmin を作成し、その他最低限の設定を行う。

$ postgresql-setup initdb # データベースの初期化
$ service postgresql start # PostgreSqlを起動
$ sudo -u postgres psql # postgresでログイン
postgres=# CREATE DATABASE MACUOSDB; # データベースの作成
postgres=# CREATE USER padmin WITH PASSWORD '*****'; # ユーザー、パスワードの作成
postgres=# ALTER ROLE padmin SET client_encoding TO 'utf8'; # padminの文字コードを設定
postgres=# ALTER ROLE padmin SET default_transaction_isolation TO 'read committed';  # 実行された結果だけを見に行く
postgres=# ALTER ROLE padmin SET timezone TO 'UTC+9'; # タイムゾーンを設定
postgres=# GRANT ALL PRIVILEGES  ON DATABASE MACUOSDB TO admin;  # padminに権限を付与
$ \q
$ service postgresql status # PostgreSqlを起動確認
 # … → active (running) と表示されていれば成功。

以上。

前ページ:[4] Python、Djangoインストール + Django起動確認
次ページ:[6] Apache + Django + PostgreSQLで本番環境を構築 (設定編)

Copyright UNISIA-SE All Rights Reserved.
s-hama@unisia-se.jp