PostgreSQLの設定
WIKIPLUSでは、データベースにはPostgreSQLが必須です。
ここでは、PostgreSQLの設定方法をご案内します。
WIKIPLUSのデータベース利用について
WIKIPLUSのデータベースには、インスタンス情報やアカウント情報、承認フローの情報などが保存されます。コンテンツデータは含まれないため、比較的負荷は軽いものとなります。
セットアップ
ここでは、PostgreSQL 9.4がインストールされた直後の状態を例として、初期設定を含めてご案内します。
データベースクラスタの初期化
# /etc/init.d/postgresql-9.4 initdb
設定ファイルの編集
/var/lib/pgsql/9.4/data/pg_hba.conf
以下はIPv4のみを設定した際の一例です。サーバーの設計やポリシーにより変更してください。
WIKIPLUSでは、全体で1つのデータベースを使用します。
local all postgres trust host all postgres 127.0.0.1/32 trust host sameuser all 127.0.0.1/32 password local sameuser all password
/var/lib/pgsql/9.4/data/postgresql.conf
TCPリスニングの設定を行います。
また、動作するApache / PHPのインスタンスの数(preforkならMaxClient、FastCGIなら同時起動の数)に余裕を加えてmax_connectionの数を設定する必要があります。
... listen_addresses = 'xx.yy.zz.ww' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) port = 5432 # (change requires restart) max_connections = 100 # (change requires restart) ...
PostgreSQLサーバーの起動と、データベース・ユーザーの作成
PostgreSQLを起動し、「wikiplus」というユーザーと同名のデータベースを作成します。
# service postgresql-9.4 start # chkconfig postgresql-9.4 on $ /usr/pgsql-9.4/bin/createuser -e -h localhost -U postgres -D -E -P -R -S wikiplus $ /usr/pgsql-9.4/bin/createdb -e -h localhost -U postgres -E UTF8 -O wikiplus -T template0 wikiplus
作成したユーザーのパスワードは、後ほどWIKIPLUSの設定ファイル(server-config.yml)に記述します。
接続の確認
WIKIPLUSサーバーからデータベースに接続できるかを確認します。
$ /usr/pgsql-9.4/bin/psql -h 127.0.0.1 -U wikiplus -W ユーザ wikiplus のパスワード: psql (9.4.4) "help" でヘルプを表示します. wikiplus=> \q
(参考)Out Of Memoryが発生する場合は
WIKIPLUSとPostgreSQLを同サーバーにインストールした場合、Apacheのインスタンスがメモリを使用し過ぎることでPostgreSQLがOut Of Memoryとなる場合があります。
その際は、以下を参考にチューニングしてください。
- ApacheのMaxClientなどを調整する
- limitsやcgroupsなどを利用し、PostgreSQLのメモリを確保する