PostgreSQL運用ガイド(PowerPack搭載)【Plesk11】

付録

STEP 1PleskでのPostgreSQLの管理者アカウントの設定

1.Pleskにadminでログイン (https://契約ホスト名:8443 )
2.上メニューのサーバをクリック
3.”アプリケーションとデータベース”セクションの「データベースサーバ」をクリック
4.データベースサーバ一覧、サーバタイプ:PostgreSQLの行、ホスト名「ローカルPostgreSQL サーバ」をクリック
5.認証設定にて「管理者のユーザ名 」に「postgres」、「新しい管理者パスワード」を入力
6.「OK」ボタンをクリック
7.データベースサーバ一覧のPostgreSQL左側のアイコンが緑のチェックマークになります

STEP 2データベースの作成

Plesk PowerPackを導入するとPlesk上からPostgreSQLデータベースの作成が可能になります。

1.Pleskにadminでログイン (https://契約ホスト名:8443 )し対象ウェブスペースを選択
2.「ウェブサイトとドメイン」メニューを開く
3.データベースをクリック
4.「新しいデータベースを追加する」をクリック
5.データベース名 欄に、任意の半角英記号、タイプ→PostgreSQLを選択
タイプを選択するとデータベースサーバ欄も「ローカル PostgreSQL サーバ(PostgreSQLのデフォルト)」が選択されますので「OK」をクリック
6.「新しいデータベースユーザを追加する」をクリック
7.データベースユーザ名、新しいパスワード、パスワードの確認欄を入力し「OK」をクリック

STEP 3サービス起動、再起動、停止

Plesk PowerPackを導入するとPlesk11>サーバ>サーバ管理欄「サービス管理」にて「PostgreSQL」のプロセスの起動、停止、再起動が可能になります。
※コマンドラインではrootに昇格していただき

#/etc/init.d/postgresql status (状態確認)
#/etc/init.d/postgresql stop (停止)
#/etc/init.d/postgresql start (起動)
#/etc/init.d/postgresql restart (再起動)

等の操作も可能です。

※PostgreSQLの自動起動の設定について
Plesk搭載のサーバの既定の仕様として、サーバの再起動やPleskプロセスの停止→起動の際に、PostgreSQLが再度起動してくるようになっています。もしPostgreSQLのプロセスを起動させたくないという場合は以下のFAQをご参照ください。
Plesk搭載サーバのPostgresqlの自動起動を停止したいのですが…

STEP 4アクセス制限

ポート5432番ポートは起動しておりますが、初期の設定ではローカルホストからのみの接続許可をしています。ポートが外部に応答しないように設定してセキュリティを強化したい場合は、ファイヤーウォール設定をご参照ください。
ファイアウォール設定 【Plesk11】
外部からアクセスを許可したいという場合は設定ファイルを変更する必要があります。こちらをご参照ください。
当ガイドではFireWallのカタカナ表記をファイアウォールに統一しています。コントロールパネル、Plesk上の表記は「ファイヤウォール」の場合がございます。

付録PostgreSQLコンソールログイン

事前に STEP1にてPlesk管理画面にて、管理者をpostgresとして設定いただく必要があります。

  • SSHでログインし、rootに昇格
  • rootののちスイッチユーザコマンドで「postgres」ユーザに変更
    # su - postgres
    
  • psqlコマンドでコンソールログイン
    $ psql
    Password:(Pleskの画面にて設定したパスワードを入力しリターン)
    

付録設定ファイルについて

設定ファイルは
/var/lib/pgsql/data/以下
にあります。

付録外部からのアクセスについて

/var/lib/pgsql/data/postgresql.conf および 同一ディレクトリ配下のpg_hba.confの編集後、PogreSQLの再起動を行っていただく必要があります。
リモートからアクセスして

psql: could not connect to server: Connection refused
        Is the server running on host "ご契約ホスト名やIPアドレス" and accepting
        TCP/IP connections on port 5432?

というログが出てしまった場合は、まず postgresql.confで調整します。

またよくある問題として、規定の設定では「UNIXに存在するユーザでないとログインは許可しない」という設定もあるため、「データベースユーザ名とパスワードをつくったがSSH等でpsqlコマンド操作ができない」というケースもあります。たとえば以下のようなエラーが出ます。

psql: FATAL: Ident authentication failed for user "データベースユーザ名"

これらのエラーについては「pg_hba.conf」の範疇となります。

詳細についてはサポート対象外となるため省略しますが、外部からデータベースユーザ権限でpsqlコマンドを発行する場合は、上述の2ファイルの編集が必要です。
postgresql.confについては以下のような行を追加します。

listen_addresses = '*'

※デフォルトでは コメントアウトされている”#listen_addresses = ‘localhost’”の状態でlocalhostのみとなっています。

pg_hba.confについてはさまざまな記述が可能ですが、あまりにも広くオープンにしないように注意してください。conf上でオープンにしてもファイヤウォール設定等でアクセス制限を掛ける等工夫いただくようお願いします。
以下例としてデータベース「admin_pg1」データベースユーザ「pg1_user」アクセス元「XXX.XXX.XXX.0/24」(つまり XXX.XXX.XXX.0 からXXX.XXX.XXX.255までのアドレス群)を指定した場合の設定例について記載します。
【変更前】

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               ident sameuser
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident sameuser


【変更後】

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               ident sameuser
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident sameuser
host    admin_pg1     pg1_user   XXX.XXX.XXX.0/24   md5

アクセス元の記載方法についてはネットマスクをつけた記述形式で書きますので 「XXX.XXX.XXX.XXX」というような単一IPアドレス等で設定するとエラーになる場合もございます。単一IPアドレスのときは「XXX.XXX.XXX.XXX/32」というような記載になります。上記はデータベース名やデータベースユーザ名をなるべく限定した状態で、特定ネットワークに対してのみオープンにした例です。その他の記述例や設定の仕様についてはインターネット上の情報等をご参照ください。

設定ファイルを編集後はpostgresqlのリスタートを行ってください。

付録phpからのPostgreSQL接続

VPS、クラウドシリーズには既定の状態で php-pgsqlがインストールされていないため、連携ができません。当社指定のインストール方法をご案内させていただきますので、サポートセンターまでお問い合わせください。