PostgreSQLでの運用
以下を踏まえた上でご利用ください。
- 外部DB運用はDBモジュールロードに時間がかかります。先に高速動作を設定してください。
- 標準のText-DBは、よほど多くの記事を扱わない限り十分なパフォーマンスがあります。
adiaryの運用では、MySQLよりもPostgreSQLのほうがよくテストされています。
準備
adiaryをインストールするサーバに、PostgreSQLのクライアントライブラリ(DBD::Pg)をインストールしてください。
# apt-get install libdbd-pg-perl
設定
まずPostgreSQLに、adiary用のアカウントと、そのアカウントが所有するデータベースを作成してください。
その際、データベースの文字コードはutf8にしてください。
次に adiary.conf.cgiを設定します。
# テキストDBの場合
#<$DB = loadpm('DB_text', "<@data_dir>db/")> ←コメントアウト
# PostgreSQL の場合(データベース名、ユーザー名、パスワード)
<$DB = loadpm('DB_pg', 'database=adiary', 'adiary', 'test', {Pool=>1} )>
ローカル以外のPostgreSQLサーバに接続する場合のサンプル。
<$DB = loadpm('DB_pg', 'database=adiary;host=pgsql.example.com', (略))> <$DB = loadpm('DB_pg', 'database=adiary;port=12345',(略))> <$DB = loadpm('DB_pg', 'database=adiary;host=10.45.67.89;port=12345',(略))>
サーバの環境設定メモ
- PostgreSQL をインストールします。
# apt-get install postgresql
- postgresユーザーになります。
# su postgres
- コンソールに入ります。
postgres~$ psql
- コンソール上で、pgsql ユーザーにパスワードを設定します。
postgres=# ALTER USER postgres ENCRYPTED PASSWORD 'password';
- 一度コンソールを脱出し、データベースディレクトリの pg_hba.conf に以下を追加します。必要のない認証設定は削除しても構いません。peerはUnix USERと同一のときに許可する設定です。
# TYPE DATABASE USER ADDRESS METHOD local all all md5
- 変更したら、PostgreSQL デーモンを再起動します。
- 再びコンソールに入ります
postgres~$ psql postgres postgres
- adiary用のユーザーとデータベースを作成します。
postgres=# CREATE USER adiary ENCRYPTED PASSWORD 'password'; postgres=# CREATE DATABASE adiary OWNER=adiary ENCODING 'UTF8';
コマンドのメモ
データベース一覧(文字コード付)
postgres~$ psql -l