質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
phpPgAdmin

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

3回答

13289閲覧

phpPgAdminにログインできない

yusukesasaki

総合スコア28

phpPgAdmin

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2017/05/12 01:28

編集2017/05/12 03:41

■環境
CentOS 6.4
PostgreSQL 9.0
phpPgAdmin 5.1
PHP 5.3

下記サイトを参考に、PostgreSQL、phpPgAdminをインストールしました。

https://www.server-world.info/query?os=CentOS_6&p=postgresql&f=1
https://www.server-world.info/query?os=CentOS_6&p=postgresql&f=2

http://192.168.1.xx/phpPgAdmin/ にアクセスしてphpPgAdminのログイン画面を表示できる状態になりましたが、ログインしようとすると「ログインに失敗しました」と表示されてしまいます。

/etc/phpPgAdmin/config.inc.phpは説明通りに

# 18行目:追記 $conf['servers'][0]['host'] = 'localhost'; # 94行目:変更 $conf['owned_only'] = true;

に変更し、/var/lib/pgsql/data/pg_hba.conf は、

# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 192.168.1.0/24 md5 # IPv6 local connections: host all all ::1/128 md5

このような状態です。

/etc/httpd/conf.d/phpPgAdmin.conf は、

<Location /phpPgAdmin> Order deny,allow Deny from all Allow from 127.0.0.1 192.168.1.0/24 Allow from ::1 # Allow from .example.com </Location>

となっています。

解決策をご教示いただけると助かります。

【追記】
/var/lib/pgsql/9.0/data/pg_hba.confを以下のように修正しましたがどちらもログイン不可でした。

# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 192.168.1.0/24 trust # IPv6 local connections: host all all ::1/128 trust
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1 255.255.255.255 trust # IPv6 local connections: host all all ::1/128 trust

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

phpPgAdmin からは 127.0.0.1:5432 へパスワードでログインするので、pg_hba.conf は「host all all 127.0.0.1/32 md5」でいいはずです。
psql -h localhost -U cent -W testdb ではログインできるのですよね?

/var/lib/pgsql/9.0/data/postgresql.conf に log_connections = on を設定し、ログを調べてみるのはどうでしょうか。

投稿2017/05/14 15:22

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusukesasaki

2017/05/15 02:08 編集

ありがとうございます。 SELinuxが原因のようで、# setenforce 0 を実行することでログイン可能になりました。下記URLを参考に恒久的に無効にすることで解決しそうですが、ずっと無効にしておいていいものか判断ができないので引き続きアドバイスいただけると助かります。 https://www.server-world.info/query?os=CentOS_6&p=selinux
TaichiYanagiya

2017/05/15 02:16

SELinux が原因だったのですね。 "setenforce 0" よりは個別のルールのみを許可した方が安全と思います。 httpd_can_network_connect_db は CentOS 6.9 にはありました。 "getsebool -a | grep httpd" でそれに近いものはありませんでしょうか。
yusukesasaki

2017/05/15 02:28

httpd_can_network_connect_db --> on となっているのですが、ログインは出来ない状態です。 あと周辺は、 httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> on httpd_can_network_memcache --> off httpd_can_network_relay --> off httpd_can_sendmail --> off このようになっています。
TaichiYanagiya

2017/05/15 03:13

httpd_can_network_connect_db とは別の部分で SELinux の制限に引っかかっているのかもしれません。 phpPgAdmin からのログイン失敗時に /var/log/audit/audit.log に "denied" が出力されていませんでしょうか。
yusukesasaki

2017/05/15 04:37

ログイン失敗時に下記が出力されています。 type=AVC msg=audit(1494820112.578:89): avc: denied { write } for pid=1569 comm="httpd" name=".s.PGSQL.5432" dev=dm-0 ino=393221 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:tmp_t:s0 tclass=sock_file type=SYSCALL msg=audit(1494820112.578:89): arch=c000003e syscall=42 success=no exit=-13 a0=c a1=7faf09cc9bc0 a2=6e a3=0 items=0 ppid=1494 pid=1569 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)
guest

0

PgAdminは詳しくありませんが、この辺の方「phpPgAdminにログインできない」参考にされてはどうでしょうか?

pg_hba.conf のmd5の方式では無かったような気がします。

投稿2017/05/12 03:05

A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yusukesasaki

2017/05/12 03:42

ありがとうございます。 試してみましたが、変わらずログインできませんでした。 (試した内容は質問欄に追記しました)
A.Ichi

2017/05/12 04:10

postgresq.conf の listen_addresses = '*' ←コメントを解除されておりますでしょうか
A.Ichi

2017/05/12 04:19

上記の設定はlocalhost以外なのでもし外からでないのであれば不要です 加えてextra_login_securityはFALSEに設定されましたか
yusukesasaki

2017/05/12 05:22

> postgresq.conf の > listen_addresses = '*' ←コメントを解除されておりますでしょうか こちらはコメント解除しております。(外のPCからの接続です) > 加えてextra_login_securityはFALSEに設定されましたか root、postgresといったユーザーではないのでtrueのままにしていましたが、試しにfalseにしてもダメでした。
A.Ichi

2017/05/12 09:52

iptablesをOFFにしてみては、chkconfig iptables off
yusukesasaki

2017/05/12 12:07

試してみましたが変化はありませんでした。
A.Ichi

2017/05/13 11:03

いろいろやって頂きましたが、あと思い付くのはSElinuxくらいです。 # setenforce 0
A.Ichi

2017/05/13 11:18

centでログインする場合にパスワードを設定してみてはどうでしょうか。 psql -c "alter user cent with password 'password'"
yusukesasaki

2017/05/15 01:43

ありがとうございます! # setenforce 0 を実行することでログイン可能になりました! 下記サイトに setsebool -P httpd_can_network_connect_db 1 を実行することでログイン可能になると書いてありましたが、バージョン違いが原因なのか私の環境ではダメでした。 https://translate.google.co.jp/translate?hl=ja&sl=en&u=https://www.unixmen.com/postgresql-9-4-released-install-centos-7/&prev=search https://www.server-world.info/query?os=CentOS_7&p=postgresql&f=2 SElinuxは無効にしておいても問題ないものでしょうか…?それともphpPgAdminを使うときのみ # setenforce 0 を実行するような使い方のほうがいいでしょうか?
yusukesasaki

2017/05/15 06:36

ご回答いただきありがとうございました。 /etc/phpPgAdmin/config.inc.php ではなく、/usr/share/phpPgAdmin/conf/config.inc.phpを編集することで解決しました。 丁寧に対応していただいたのにBAを他の方につけてしまい申し訳ありません。
guest

0

ベストアンサー

TCP ではなく、socket ファイル経由で PostgreSQL に接続しようとして SELinux の制限に引っかかっています。
"(phpPgAdminディレクトリ)/conf/config.inc.php" が「$conf['servers'][0]['host'] = '';」のままになっているのではないでしょうか。
質問文に記載の設定ファイルのパス /etc/phpPgAdmin/config.inc.php は EPEL リポジトリで提供されている RPM のものですが、バージョンは 5.0.4 のようです。
バージョン 5.1 で正しいのであれば、別の場所にインストールしたものを使用しているのではないでしょうか。
設定ファイルのパスを確認ください。

投稿2017/05/15 04:54

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2017/05/15 05:05

すみません。コメントのつもりが新規回答になってしまいました。
yusukesasaki

2017/05/15 06:27

インストールの手順がおかしかったのでしょうか…? /usr/share/phpPgAdmin/conf/config.inc.php こちらのファイルを編集したところ、無事ログインできるようになりました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問