web-dev-qa-db-ja.com

phpPgAdminにログインできません

テストマシンでphpPgAdminをセットアップして、常にpsql CLIを使用する必要なくPostgreSQLとインターフェースできるようにしています。私はPostgreSQL 9.1をRPMリポジトリ経由でインストールしましたが、phpPgAdmin 5.0.4を「手動で」(phpPgAdmin Webサイトからアーカイブを抽出して)インストールしました。ちなみに、私のホストOSはCentOS 6.2です。

私はすでに次の構成変更を行いました:

PostgreSQL

  • 内部pg_hba.confMETHODsをすべてmd5に変更しました。
  • Postgresアカウントにパスワードを与えました
  • パスワード付きのwebuserという名前の新しいアカウントを追加しました(このアカウントには他に何もしなかったため、そのアカウントにどのようなアクセス許可が与えられているかを正確に知ることはできません)

phpPgAdmin config.inc.php

  • 行を変更しました$conf['servers'][0]['Host'] = '';から$conf['servers'][0]['Host'] = '127.0.0.1';(localhostを値として使用してみました)。
  • セットする $conf['extra_login_security']からfalseへ。

PhpPgAdminにログインしようとすると、正常な認証情報(psqlで機能するもの)を使用していても、「ログインに失敗しました」というメッセージが表示されます。 [〜#〜] faq [〜#〜] の質問3に記載されている手順のいくつかを実行しようとしましたが、これまでのところうまくいきません。今日がPostgreSQLで作業する最初の日であることはおそらく助けにならないでしょう。私はMySQLに精通していますが、現在取り組んでいるプロジェクトにはPostgreSQLを使用する必要があります。

CentOS 6.2でphpPgAdminを設定する方法について、誰かが助けを提供できますか?これまでのところ、私の構成でひどく何か間違ったことをしたとしても、まだ何かデータを保存しているわけではないので、何か/すべてを吹き飛ばしても大したことではありません。

私はあなたが持っているかもしれない洞察に感謝します!

10
Devin

まあ、私はそれを理解しました-それはPostgreSQLの経験不足とphpPgAdminからの非常に記述的でないエラーの組み合わせでした。

TCP/IPアクセスが有効になっていないことがわかりました。つまり、no PHPアプリケーションはデータベースにアクセスできました)。これを修正するには、2つの変更を行う必要がありました。

  • listen_addresses'*'postgresql.confに設定すると、うまく機能するように見えました。それが完全に必要かどうかはわかりませんが、このようにファイアウォールが適切に設定されたマシンでは、問題にはなりません。
  • Apacheが実際にプログラムを取得して接続するには、ターミナルウィンドウからsetsebool -P httpd_can_network_connect_db 1コマンドを実行する必要がありました。この手順の後でPostgreSQLを再起動する必要があったかどうかは覚えていませんが、おそらく害はありません。

最後に、tcpip_socket=trueの行postgresql.confを変更することを提案するものがいくつかありました。これはどうやら動作しない PostgreSQL 9.1では。実際、私がそれを追加した後、それは開始を拒否しました。だからそれをしないでください。

とにかく、うまくいけば、これは私がしたのと同じ問題に遭遇した人を助けることができます!

7
Devin

まあ、デフォルトのユーザーはpostgresで、新規インストールのパスワードはありません。したがって、ボックスにこれを入力し、パスワードボックスをクリアします。クリック。完了しました。

pgAdmin4を使用し、最初のログイン時にユーザーpostgresに使用するパスワードを入力した場合。 phppgadminで、ユーザー名としてpostgresと入力し、パスワードボックスにそのパスワードを入力します。クリック。できました。ありがとうございました

0
NetBug

GitLab-CEを使用してサーバーで実行すると、ログファイルに表示されるメッセージは次のとおりです。

tail -f -n 8 /var/log/postgresql/postgresql-*-main.log
......
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 LOG:  provided user name (postgres) and authenticated user name (gitlab-www) do not match
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 FATAL:  Peer authentication failed for user "postgres"
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 DETAIL:  Connection matched pg_hba.conf line 85: "local   all             postgres                                peer"

だから、私はcli経由でpsqlに接続し、不足しているロール/ユーザーを作成します(私の場合はgitlab-www):

# Sudo -u postgres psql
CREATE USER "gitlab-www" WITH PASSWORD 'YouKnow..' CREATEDB CREATEROLE SUPERUSER LOGIN;

そして、ログインプロセスがドアを開けます。

0
fcm

あなたの解決策が見つかるまで、phpPgAdminをセットアップできませんでした。ソリューションを完了するには:

  • phpPgAdminサーバーがpostgresqlサーバーと同じコンピューター(私にとっては9.2)にある場合は、listen_address'*'に設定しても意味がありません。localhostに設定できます。
  • 役立つ唯一のことは、SELinuxブール値を設定することです。
0
user176931

上記の解決策を試しましたが、「ログイン失敗」メッセージがまだ表示されます。解決するには、pg_hba.confファイルでIPv6もpasswordに設定されていることを確認する必要がありました。そのため:vi /var/lib/pgsql/9.4/data/pg_hba.confに応じて編集します。次に、httpdとpostgresqlの両方を再起動します(使用しているバージョンに関係なく)。

0
Olu