CentOS7にphpPgAdminをインストールしてみる

CentOS7にPostgreSQLをインストールしてみる。

【参考】
CentOS6にPostgreSQL9.4、phpPgAdminをインストールする | ITトラブル支援
http://it-trouble.help/centos6%E3%81%ABpostgresql9-4%E3%80%81phppgadmin%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/

CentOS 7 : PostgreSQL : phpPgAdmin インストール : Server World
http://www.server-world.info/query?os=CentOS_7&p=postgresql&f=2

PostgreSQLphpPgAdmin最速インストールマニュアル - 常水商会::よしなしごと
http://cockatiel-cage.hateblo.jp/entry/20111020/1319101145

準備

とりあえずVagrantでCentOS7を用意する。

mac$ vi Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-7.2"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.network "forwarded_port", guest: 80, host: 8080
end
mac$ vagrant up
mac$ vagrant ssh

PostgreSQLのインストール

rootになってPostgreSQLをインストールする。

$ su -
# yum install postgresql-server

初期化して、

# postgresql-setup initdb

起動。

# systemctl start postgresql
# systemctl enable postgresql

とりあえず、「peer」「ident」の所を「trust」に修正して、パスワード無しでログインできるようにする。

# vi /var/lib/pgsql/data/pg_hba.conf
・・・
local   all             all                                     trust
・・・
host    all             all             127.0.0.1/32            trust
・・・
host    all             all             ::1/128                 trust

再起動して反映。

# systemctl restart postgresql

phpPgAdminのインストール

まず、Apacheをインストールしておく。

# yum -y install httpd
# systemctl start httpd
# systemctl enable httpd

epelを入れ、phpPgAdminをインストールする。

# yum -y install epel-release
# yum -y install phpPgAdmin

ローカルからしかアクセス出来ないようになっているので、どこからでもアクセスできるよう、 「Require local」を「Require all granted」に修正する。

# vi /etc/httpd/conf.d/phpPgAdmin.conf
・・・
Require local
↓
Require all granted
・・・

hostに「127.0.0.1」を設定し、postgresユーザーでもログインできるようextra_login_securityをfalseにする。

# vi /etc/phpPgAdmin/config.inc.php
・・・
$conf['servers'][0]['host'] = '';
↓
$conf['servers'][0]['host'] = '127.0.0.1';
・・・
$conf['extra_login_security'] = true;
↓
$conf['extra_login_security'] = false;
・・・

再起動して反映。

# systemctl restart httpd

確認

http://localhost:8080/phpPgAdmin/
にアクセスすると、phpPgAdminが表示される。

ユーザー名に「postgres」を入力すると、(パスワードは空のまま)

ログインできる。


パスワード入力を必要とさせる場合

パスワードが必要になるので、postgresユーザーにパスワードを設定しておく。

# su - postgres
-bash-4.2$ psql -c "alter user postgres with password '(パスワード)'"
-bash-4.2$ exit

「trust」を「md5」に変更して、パスワード入力でログインするよう設定する。

# vi /var/lib/pgsql/data/pg_hba.conf
・・・
local   all             all                                     md5
・・・
host    all             all             127.0.0.1/32            md5
・・・
host    all             all             ::1/128                 md5

再起動して反映。

# systemctl restart postgresql

ログイン時にパスワードを入力すると、

ログインできる。