自宅サーバの道しるべ
▼ホーム
ホームへ戻る
▼基本設定
ネットワーク構成
Fedoracore3の設定
コンパイラの導入
ポート設定の概要
ポート設定(ルータ)
ポート設定
(ファイアウォール)
▼新サーバPC
新サーバPCのスペック
ネットワークドライバの
インストール
グラフィックドライバの
インストール
▼ダイナミックDNS
ダイナミックDNSの概要
DynDNSの設定
ddclientの設定
▼メールサーバ
メールサーバの概要と準備
Postfixの構築
Qpopperの構築
不正メール中継テスト
空メール(自動返信メール)
スパムメール対策(Postfix)
バーチャルドメイン設定
(Postfix)
▼Webサーバ
Webサーバの概要と準備
Apacheの構築
PHPの構築
バーチャルホストの設定
HTTPリダイレクトの設定
▼データベース
MySQLの構築
PostgreSQLの構築
▼FTPサーバ
FTPサーバの概要と準備
vsftpdの構築
▼共有サーバ
Sambaの概要と準備
Samba構築(ファイル共有)
cupsの概要と準備
cupsの構築(プリンタ共有)
プリンタ設定(クライアント)
▼資料
HTTPステータスコード
▼リンク
参考書籍一覧
参考書籍のレビュー
リンク
関連サイト
 ■ホーム>PostgreSQLの構築

◆PostgreSQL (ver7.4.13)
rpmをインストールし、起動するだけで動作するようになっています。
ここではPHPとの連携を考慮してインストールします。
ApacheおよびPHPのインストールに関しては、
Webサーバの概要と準備
Apacheの構築
PHPの構築
上記のページを参照して下さい。

Step1.インストール(PHP連携)
インストールするパッケージは以下の通りです。
・postgresql-server
・php-pgsql
終端(ターミナル)を開きます。
# yum install postgresql-server php-pgsql
   :
   :
   :
Is this ok [y/N]: y




このコマンドにより、
PostgreSQL本体とPHP連携用モジュールの
パッケージをまとめてインストールします。
(依存環境も考慮してくれます。)

Step2.起動
終端(ターミナル)を開きます。
# /etc/rc.d/init.d/postgresql start

データベースを初期化中:                     [ 
OK  ]
postgresql サービスを開始中:               [ 
OK  ]

# chkconfig postgresql on


# chkconfig --list postgresql
postgresql  0:off  1:off  2:on  3:on   4:on   5:on   6:off

#
 

PostgreSQL起動スクリプトを実行。

このメッセージが表示されれば、
起動完了。

PC起動時にPostgreSQLが
起動するように設定。

PostgreSQLの起動時サービス
確認コマンドです。
起動レベル2〜5がonに
なっていることを確認します。

Step3.データベースのスーパーユーザーにパスワードを設定する
付与するパスワードはpasshogeとします。
ここで説明するスーパーユーザー”postgres”とはデータベース上のユーザーのことです。
非常に紛らわしいですが、Linux上のユーザー”postgres”とは
名前が同じですが、別モノ
として認識して下さい。

PostgreSQL上のスーパーユーザー(Linux上のrootに相当)である
”postgres”に対してパスワードを設定します。
終端(ターミナル)を開きます。
# su - postgres

-bash-3.00$ psql template1
Welcome to psql 7.4.13, the PostgreSQL interactive terminal.
         :
         :
template1=# alter user postgres with password 'passhoge';


ALTER USER

template1=# \q


-bash-3.00$
 

ユーザーを”postgres”に切り替えます。

PostgreSQLを起動
(データベース:template1に接続)



このコマンドにより、データベース上の
ユーザー”postgres”にパスワードを
設定します。
ALTER USERが表示されればOKです。

このコマンドでPostgreSQLを
終了します。
以上でスーパーユーザーに対してのパスワード設定は完了です。
しかし、これだけでは環境設定を変更していない為、パスワードが有効にはなっていません。
続けて環境設定を行って下さい。

Step4.環境設定ファイルの概要
PostgreSQLでは、設定ファイルが3つあります。
それぞれの役割は次のようになっています。
ファイル名(絶対パス) 概  略
/var/lib/pgsql/data/postgresql.conf PostgreSQL環境設定ファイル
/var/lib/pgsql/data/pg_hba.conf 認証方法設定ファイル
/var/lib/pgsql/data/pg_ident.conf ident認証ファイル

(1)PostgreSQL環境設定ファイル
 環境設定ファイルでは接続に関する項目を設定します。
 PostgreSQLへの接続にはUnixドメイン接続(内部接続)と
 TCP/IP接続(外部接続)の2種類があります。

環境設定ファイル
postgresql.conf

項目(デフォルト)

説明

TCP/IP経由の接続許可 #tipip_socket = false tcpip_socket = true
とすると外部からのTCP/IP接続を
有効にします。(デフォルトは無効)
TCP/IP経由のポート番号 #port = 5432 TCP/IP接続する場合のポート番号を
設定します。(デフォルトは5432)
同時接続の最大数 max_connections = 100 データベースサーバへの同時接続の
最大数を決定します。(デフォルトは100)
パスワード保存時の暗号化 #password_encryption = true パスワードの暗号化を有効にします。
(デフォルトは有効)
※主に使用する項目のみ抜粋
 先頭に”#”がついてコメントになっている場合はデフォルトが適用されます。


(2)認証方法設定ファイル
 /var/lib/pgsql/data/pg_hba.confに内部/外部接続の認証方法を指定します。
 
内部接続の記述例 local  all  all  ident sameuser
外部接続の記述例 host   all  all  192.168.11.0  255.255.255.0  trust

 記述に関する各項目の書式と解説は以下のようになっています。

項目

書式

解説

TYPE local サーバ自身の接続に対応します。
host 外部PCからのTCP/IP接続に対応します。
DATABASE データベース名 認証する任意のデータベースを指定します。
all すべてのデータベースに対応することを指定します。
USER Postgresユーザー名 認証する任意のPostgresユーザーを指定します。
all すべてのユーザーに対応することを指定します。
IP-ADDRESS IPアドレス 外部接続を許可するIPアドレスを指定します。
※TYPEがhostの場合のみ適用されます。
IP-MASK IPマスク IPアドレスのマスク(適用範囲)を指定します。
※TYPEがhostの場合のみ適用されます。
METHOD trust 無条件で接続許可する場合に指定します。
md5 認証時にMD5(暗号化)パスワードを要求する場合に
指定します。
crypt 認証時にパスワードを要求する場合に指定します。
※この暗号化はバージョン7.2以前をサポートする場合に
使用します。
password 認証時にパスワードを要求する場合に指定します。
※パスワード送信時に暗号化を行いません。
ident ident認証する場合に指定します。
OPTION マップ名 ident認証する任意のマップ名を指定します。
sameuser 無条件で接続されます。


(3)ident認証ファイル
 (2)認証方法設定ファイルでident認証を使い、OPTION設定項目が
 マップ名(sameuser以外)
の場合、ident認証ファイル内に書かれているマップ名と
 ログインしているLinuxユーザー名(IDENT-USERNAME)に対応する
 PostgreSQLユーザー名(PG-USERNAME)として接続できます。

  具体的な記述例:
  Linuxユーザー”asakusa”でログインしていて、認証方法にidentマップ認証を指定している場合

設定ファイル名 設定の記述内容 解説
pg_hba.conf local  all  all  ident hogemap マップ名”hogemap”としてident認証を指定。
pg_ident.conf hogemap  asakusa  ueno この記述内容の書式は
・MAPNAME     →hogemap
・IDENT-USERNAME→asakusa
・PG-USERNAME  →ueno
となります。
Linuxユーザー”asakusa”でログインしている場合、
postgresユーザー”ueno”としてデータベースに
接続されます。
※Linuxユーザー”asakusa”としてログインしている場合はPostgreSQLに接続できますが、
  それ以外のユーザーとしてログインしていた場合は接続失敗となります。

 記述に関する各項目の書式と解説は以下のようになります。
 

項目

書式

解説

MAPNAME local all all trust 無条件で接続されます。
IDENT-USERNAME local all all ident sameuser Linux上のユーザーとPostgreSQL上のユーザーが
一致した場合に接続できます。
PG-USERNAME local all all md5 パスワードを暗号化して認証します。


Step5.環境設定(内部接続)
Step4.環境設定ファイルの概要に基づき、内部接続の具体的な設定を行います。

前提条件
当サイトではセキュリティを考慮して次のような設定とします。
・データベースへの接続は内部接続(サーバ自身のアクセス)のみの許可とする。
・内部接続でもログインする際はパスワードを入力する。

(1)PostgreSQL環境設定ファイル
 今回は内部接続だけの為、設定を変更する必要はありません。


(2)認証方法設定ファイル
 /var/lib/pgsql/data/pg_hba.confをテキストエディタで編集します。
 デフォルトの認証方法は”ident sameuser”(ident認証)となっているので、
 パスワードを有効にする為”md5”に変更します。
 
認証方法設定ファイル
pg_hba.conf

修正前

修正後

ローカルアクセス設定 local  all  all  ident sameuser local  all  all  md5
※変更が必要な箇所のみ抜粋

 尚、認証方法は以下のような方法があります。

認証方法

書式例

解説

無条件認証 local all all trust 無条件で接続されます。
ident認証 local all all ident sameuser Linux上のユーザーとPostgreSQL上のユーザーが
一致した場合に接続できます。
local all all ident hogemap ident認証ファイルを参照し、
ログインしているLinux上のユーザーに対応するPostgreSQL上のユーザーとして接続できます。
パスワード認証 local all all md5 パスワードを暗号化して認証します。
local all all crypt パスワードを暗号化して認証します。
(Ver7.2以前をサポートする場合に使用します。)
local all all password パスワード認証する場合の
パスワードを暗号化しません。


(3)ident認証ファイル
 今回はパスワード認証のみの為、設定を変更する必要はありません。

以上で設定ファイルの変更は完了です。


Step6.動作確認
変更した環境設定ファイルを反映させる為にPostgreSQLを再起動します。
そしてStep3.と同様のコマンドを使い、パスワード入力が求められることを確認します。
終端(ターミナル)を開きます。
# /etc/rc.d/init.d/postgresql restart

postgresql サービスを停止中:               [ 
OK  ]
postgresql サービスを開始中:               [ 
OK  ]

# su - postgres

-bash-3.00$ psql template1


Password:

Welcome to psql 7.4.13, the PostgreSQL interactive terminal.
     :
     :
template1=#

このコマンドにより、PostgreSQLを
再起動します。
メッセージが表示され、
PostgreSQLの再起動が完了します。

ユーザーを”postgres”に切り替えます。

データベース”template1”に接続を
開始します。

パスワードを求められるので入力します。

パスワード認証が成功すると
メッセージが表示され、データベースに
接続されたことを確認します。


ホームへ戻る

ページトップへ