テストマシンでphpPgAdminをセットアップして、常にpsql
CLIを使用する必要なくPostgreSQLとインターフェースできるようにしています。私はPostgreSQL 9.1をRPMリポジトリ経由でインストールしましたが、phpPgAdmin 5.0.4を「手動で」(phpPgAdmin Webサイトからアーカイブを抽出して)インストールしました。ちなみに、私のホストOSはCentOS 6.2です。
私はすでに次の構成変更を行いました:
PostgreSQL
pg_hba.conf
、METHOD
sをすべてmd5に変更しました。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を設定する方法について、誰かが助けを提供できますか?これまでのところ、私の構成でひどく何か間違ったことをしたとしても、まだ何かデータを保存しているわけではないので、何か/すべてを吹き飛ばしても大したことではありません。
私はあなたが持っているかもしれない洞察に感謝します!
まあ、私はそれを理解しました-それはPostgreSQLの経験不足とphpPgAdminからの非常に記述的でないエラーの組み合わせでした。
TCP/IPアクセスが有効になっていないことがわかりました。つまり、no PHPアプリケーションはデータベースにアクセスできました)。これを修正するには、2つの変更を行う必要がありました。
listen_addresses
で'*'
をpostgresql.conf
に設定すると、うまく機能するように見えました。それが完全に必要かどうかはわかりませんが、このようにファイアウォールが適切に設定されたマシンでは、問題にはなりません。setsebool -P httpd_can_network_connect_db 1
コマンドを実行する必要がありました。この手順の後でPostgreSQLを再起動する必要があったかどうかは覚えていませんが、おそらく害はありません。最後に、tcpip_socket=true
の行postgresql.conf
を変更することを提案するものがいくつかありました。これはどうやら動作しない PostgreSQL 9.1では。実際、私がそれを追加した後、それは開始を拒否しました。だからそれをしないでください。
とにかく、うまくいけば、これは私がしたのと同じ問題に遭遇した人を助けることができます!
まあ、デフォルトのユーザーはpostgresで、新規インストールのパスワードはありません。したがって、ボックスにこれを入力し、パスワードボックスをクリアします。クリック。完了しました。
pgAdmin4を使用し、最初のログイン時にユーザーpostgresに使用するパスワードを入力した場合。 phppgadminで、ユーザー名としてpostgresと入力し、パスワードボックスにそのパスワードを入力します。クリック。できました。ありがとうございました
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;
そして、ログインプロセスがドアを開けます。
あなたの解決策が見つかるまで、phpPgAdminをセットアップできませんでした。ソリューションを完了するには:
listen_address
を'*'
に設定しても意味がありません。localhost
に設定できます。上記の解決策を試しましたが、「ログイン失敗」メッセージがまだ表示されます。解決するには、pg_hba.conf
ファイルでIPv6もpassword
に設定されていることを確認する必要がありました。そのため:vi /var/lib/pgsql/9.4/data/pg_hba.conf
に応じて編集します。次に、httpdとpostgresqlの両方を再起動します(使用しているバージョンに関係なく)。