Fedora не может войти в phppgadmin, но в psql

У меня Fedora 21, и я хочу получить доступ к базе данных postgresql с помощью phpPgAdmin. Для этого я установил httpd и phppgadmin, а также postgresql.
Я могу без проблем войти в pgql, используя, например

psql -U learning -W template1

or

psql -W template1

но когда я вхожу в localhost/phpPgAdmin, я не могу войти в diff между попытками входа в систему

> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "POST /phpPgAdmin/redirect.php HTTP/1.1" 200 2268 "http://localhost/phpPgAdmin/redirect.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/browser.php HTTP/1.1" 200 3005 "http://localhost/phpPgAdmin/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/themes/default/global.css HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/libraries/js/jquery.js HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/xloadtree/xtree2.js HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/themes/global.css HTTP/1.1" 304 - "http://localhost/phpPgAdmin/themes/default/global.css" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/xloadtree/xloadtree2.js HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/images/themes/default/title.png HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/images/themes/default/Refresh.png HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/images/themes/default/Servers.png HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/images/themes/default/L.png HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/images/themes/default/Loading.gif HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/images/themes/default/I.png HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/servers.php?action=tree HTTP/1.1" 200 275 "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"
> 127.0.0.1 - - [04/Mar/2015:17:44:27 +0100] "GET /phpPgAdmin/images/themes/default/DisconnectedServer.png HTTP/1.1" 304 - "http://localhost/phpPgAdmin/browser.php" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0"

мой /var/lib/pgsql/data/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
host    all             all             192.168.1.0/24          ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident

мой /etc/phpPgAdmin/config.inc.php

$conf['extra_login_security'] = false;

это то, что я нашел, как заставить это работать, но я не знаю, как это сделать. phpPgAdmin при неудачном входе в систему сообщает мне «Próba zalogowania nie powiodła się.», что, вероятно, что-то вроде «Попытка входа не удалась»

localhost/phpMyAdmin работает нормально

Могу ли я как-то узнать причину, по которой я не вошел в систему? Неверный пароль, нет сервера и т.д.?

РЕШЕНИЕ Я пошел простым путем, переустановил Fedora и теперь все работает, но на самом деле это не решение :P


person Michał Piotr Stankiewicz    schedule 04.03.2015    source источник
comment
Откуда вы пытаетесь получить к нему доступ? Ваш персональный компьютер? Вы сказали, что локальный хост работает. Вы добавили свой IP-адрес в конфигурацию pg_hba?   -  person Panama Jack    schedule 04.03.2015
comment
да персональный компьютер   -  person Michał Piotr Stankiewicz    schedule 04.03.2015


Ответы (1)


Попробуй это.

Если это ваш диапазон IP-адресов, который обращается к вашему компьютеру, измените

host    all             all             192.168.1.0/24          ident

к этому

host    all             all             192.168.1.0/24          trust

Перезагрузите Postgres после его изменения. И посмотрите, сможете ли вы войти.

Вам также может понадобиться включить сеть, изменив это в файле конфигурации postgres.

от

listen_addresses='localhost'

to

listen_addresses='*' 

Также убедитесь, что вы предоставили пользователю все необходимые привилегии для доступа к этой базе данных или любым базам данных, которыми вы хотите управлять.

Изменить:

Это может быть проблема SELinux. Вы можете временно отключить SELinux для тестирования с помощью этой команды.

setenforce 0

Затем проверьте вход и посмотрите, работает ли он. Если он работает, это означает, что selinux запрещает доступ, вы должны запустить эту команду, чтобы разрешить httpd продолжать работу после перезагрузки.

setsebool -P httpd_can_network_connect_db 1
person Panama Jack    schedule 04.03.2015
comment
где я могу найти listen_addresses='localhost'? - person Michał Piotr Stankiewicz; 04.03.2015
comment
Я считаю, что это должно быть в postgresql.conf. и перезагрузить после изменений. - person Panama Jack; 04.03.2015
comment
нашел в /var/lib/pgsql/data/postgresql.conf, но уже было listen_addresses='*' - person Michał Piotr Stankiewicz; 04.03.2015
comment
Однако он должен работать с изменениями pg_hba, о которых я упоминал первым. Вы используете новый логин базы данных или пользователя postgres по умолчанию? - person Panama Jack; 04.03.2015
comment
Убедитесь, что вы предоставили все привилегии для базы данных, к которой вы пытаетесь получить доступ для нового пользователя. Используйте пользователя postgres для обновления разрешений, если вам нужно. - person Panama Jack; 04.03.2015
comment
@up2 я не совсем понимаю. У меня есть 3 пользователя postgresql: mstankiewicz, learning и postgres (2 первых с паролем) и 3 системных пользователя: mstankiewicz, postgres и root (все с паролем). только существующие базы данных используются по умолчанию (поэтому, вероятно, template1...), я пытался войти в систему с помощью psql со всеми пользователями и всегда успешно, но через localhost/phpPgAdmin ни один из них не имеет доступа. mstankiewicz и Learning - новые пользователи моего локального сервера postgresql - person Michał Piotr Stankiewicz; 04.03.2015
comment
Эти пользователи не будут иметь доступа по умолчанию, если нет схемы, к которой им назначены разрешения. Вам нужно будет использовать postgres/root или предоставить им доступ к template1, поскольку он единственный. Вам нужно создать базу данных с пользователем из psql и назначить ей все привилегии, после чего вы сможете войти в систему как этот пользователь в этой базе данных с помощью phppgadmin. Посмотрите здесь stackoverflow.com/a/10861320/330987. - person Panama Jack; 04.03.2015
comment
У меня есть все привилегии на базу данных template1 для mstankiewicz, безрезультатно - person Michał Piotr Stankiewicz; 04.03.2015
comment
У вас есть Selinux, например? соблюдение? - person Panama Jack; 04.03.2015
comment
как это проверить и сделать? я линукс нуб на самом деле - person Michał Piotr Stankiewicz; 04.03.2015
comment
Статус SELinux: включено Монтирование SELinuxfs: /sys/fs/selinux Корневой каталог SELinux: /etc/selinux Имя загруженной политики: target Текущий режим: enforcing Режим из конфигурационного файла: enforcing Статус MLS политики: включен Статус deny_unknown политики: разрешено Максимальная версия политики ядра : 29 - person Michał Piotr Stankiewicz; 04.03.2015
comment
Пробовал, но, похоже, не работает. Может быть, что-то в конфигурации phpPgAdmin? phpMyAdmin работает нормально, то же самое касается обеих программ mysql/psql. - person Michał Piotr Stankiewicz; 04.03.2015
comment
Вы сделали все, что у меня есть, включая pg_hba conf, убедились, что это ваш IP-адрес вашего компьютера или, по крайней мере, в диапазоне, указанном там, и отключили selinux? Убедитесь, что вы перезапустили postgres и на всякий случай перезапустили httpd. В противном случае я не знаю, что еще вам сказать. Я в значительной степени рассмотрел, что обычно является причиной этого. - person Panama Jack; 04.03.2015
comment
К вашему сведению, я сам не использую phppgadmin, я предпочитаю pgadmin, так как это клиент на рабочем столе. Как Heidisql для mysql. Который отлично работает. - person Panama Jack; 04.03.2015