PhpPgAdmin'e Giriş Yapamıyorum


10

Ben her zaman psqlCLI kullanmak zorunda kalmadan PostgreSQL ile arayüzü böylece test makinemde phpPgAdmin kurmaya çalışıyorum . Ben phpPgAdmin 5.0.4 "elle" (phpPgAdmin web sitesinden arşiv ayıklayarak) yüklerken, RPM deposu üzerinden PostgreSQL 9.1 yüklü. Kayıt için, ana işletim sistemim CentOS 6.2'dir.

Zaten aşağıdaki yapılandırma değişikliklerini yaptım:

PostgreSQL

  • İçeride pg_hba.confhepsini METHODsd5 olarak değiştirdim .
  • Postgres hesabına bir şifre verdim
  • Webuser adlı bir parolayla yeni bir hesap ekledim (hesaba başka bir şey yapmadığımı unutmayın, bu yüzden hangi izinlere ve hepsine sahip olduğunu bildiğimi tam olarak söyleyemem)

phpPgAdmin config.inc.php

  • Çizgi değiştirdi $conf['servers'][0]['host'] = '';için $conf['servers'][0]['host'] = '127.0.0.1';(Ben de orada değer olarak localhost'u kullanılarak denedim).
  • Set $conf['extra_login_security']için false.

Ne zaman phpPgAdmin oturumu açmaya çalıştığımda, başarılı kimlik bilgileri (içinde çalışanlar psql) kullansam bile "Oturum açma başarısız" oluyor . SSS'de Soru 3'te belirtilen adımlardan bazılarını denemeye çalıştım , ancak şu ana kadar iyi çalışmadı. Muhtemelen bu benim PostgreSQL ile çalıştığım ilk günüm olmadı. MySQL'e çok aşinayım, ama üzerinde çalıştığım proje için PostgreSQL kullanmak zorundayım.

Herkes CentOS 6.2 phpPgAdmin kurmak için nasıl yardım sunabilir? Şimdiye kadar yapılandırmamda çok yanlış bir şey yaptıysam, bir şey / her şeyi havaya uçurmak önemli değil, çünkü henüz orada herhangi bir veri depoladığım gibi değil!

Sahip olabileceğiniz herhangi bir içgörü için teşekkür ederim!

Yanıtlar:


7

Eh, anladım - bu PostgreSQL ile deneyimsizlik ve phpPgAdmin çok açıklayıcı olmayan hataların bir kombinasyonu oldu.

TCP / IP erişiminin etkin olmadığı ortaya çıktı, bu da hiçbir PHP uygulamasının veritabanlarına erişemeyeceği anlamına geliyordu . Bunu düzeltmek için iki değişiklik yapmam gerekiyordu:

  • Daha iyi ben ayarlarsanız işe gibiydi listen_addressesiçin '*'de postgresql.conf. Bunun tamamen gerekli olup olmadığından emin değilim, ancak bunun gibi iyi güvenlik duvarı olan bir makinede sorun olmamalı.
  • setsebool -P httpd_can_network_connect_db 1Apache'nin gerçekten programa bağlanması ve bağlanması için bir terminal penceresinden komutu çalıştırmak zorunda kaldım . Bu adımdan sonra PostgreSQL'i yeniden başlatmam gerekip gerekmediğini hatırlamıyorum, ancak muhtemelen zarar görmez.

Son bir not: Ben bir çizgi değişen düşündüren bir kaç şey gördük tcpip_socket=truede postgresql.conf. Bu görünüşe göre PostgreSQL 9.1 çalışmaz . Aslında, bunu ekledikten sonra başlamayı reddetti. Öyleyse yapma.

Her neyse, umarım bu benim yaptığım aynı sorunlarla karşılaşan birine yardımcı olabilir!


Güvenliği Geliştirilmiş Linux (SELinux) bulunan sistemlerde, httpd_can_network_connect_dbbayrağın ayarlanması setseboolgerekir.
postrational

Açıklığa kavuşturmak için, phpPgAdmin'i (veya diğer PHP betiklerini) aynı sunucudaysanız Postgres'e bağlanmak için TCP / IP erişiminin etkinleştirilmiş olması gerekmez, alternatif olarak yerel bir unix soketi üzerinden bağlanabilirsiniz. Yine de muhtemelen SELinux ile ilgili sorunlarla karşılaşıyorsunuz.
xzilla

0

Çözümünüzü görene kadar phpPgAdmin'i ayarlayamadım. Çözümünüzü tamamlamak için:

  • phpPgAdmin sunucunuzun postgresql sunucunuzla aynı bilgisayarda (benim için 9.2) olup olmadığını ayarlamak listen_addressiçin kullanışlı değildir '*', bunu ayarlayabilirsiniz localhost.
  • Yararlı olan tek şey SELinux boolean'ı kurmaktır.

0

Yukarıdaki çözümü denedim ama yine de 'Giriş Başarısız' mesajı aldım. Kararlılığı için, ben IPv6 de ayarlanırsa sağlamak zorunda passwordiçinde pg_hba.confdosyanın. Öyleyse yapın: vi /var/lib/pgsql/9.4/data/pg_hba.confve buna göre düzenleyin. Ardından hem httpd & postgresql'yi (kullandığınız sürüm ne olursa olsun) yeniden başlatın


0

Varsayılan kullanıcı postgres ve yeni bir kurulum şifresi yok. Yani kullanıcı kutusuna bunu koyun ve şifre kutusunu temizleyin. Tıklayın. yapılır.

Eğer kullandıysanız pgAdmin4 ve kullanıcı için kullanarak şifreyi size ilk girişte bir şifre girmiş Postgres'e . Şimdi phppgadmin'de kullanıcı adı olarak postgres ve şifre kutusuna bu şifreyi yazın. Tıklayın. Bitti. teşekkür ederim


0

GitLab-CE ile bir sunucuda çalıştığımda , günlük dosyasında aldığım mesaj şuydu:

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"

yani, psqlcli üzerinden bağlanmak ve eksik rolü / kullanıcı (benim durumumda gitlab-www) oluşturmak:

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

Ve sonra, giriş işlemi kapılarını açar.


Genel olarak, eş kimlik doğrulaması, verilen kullanıcıyı yalnızca komut satırından (psql'de olduğu gibi) Postgres'e erişebilmeyle sınırlar ve genellikle phpPgAdmin ile çalışmaz. Yeni bir kullanıcı oluşturmak iyi bir çözümdür, ancak pg_hba.conf dosyasındaki kimlik doğrulama yöntemini de değiştirebilirsiniz.
xzilla
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.