LINUX.ORG.RU

Подключение web-сервера apache к Postgresql

 


0

1

Добрый день, участники форума. Подскажите пожалуйста ответ на мой глупый вопрос. Я использую 2 сервера на Ubuntu 24.04. На один я установил веб-сервер Apache, а на другой PostgreSQL. (оба из репозиториев по умолчанию). У меня есть небольшая таблица в Postgresql. Мне нужно, чтобы, когда мой браузер обращается к серверу Apache, я мог просматривать содержимое таблицы на сервере Postgreql. Подскажите, что мне нужно установить дополнительно и как это настроить?


Чтобы просто просматривать - первое, что ты должен сделать - настроить postgresql на то, чтобы он слушал не только 127.0.0.1:5432, а 0.0.0.0:5432 или явно указать IP адрес сервера.

Второе, что ты должен сделать - разрешить подключение не только с 127.0.0.1, а ещё и с IP адреса второго сервера или из сети целиком.

После этого ставь либо указанные выше средства подключения к postgresql, есть ещё вот: phppgadmin.

Для проверки подключения к postgresql с одного сервера на другой поставь пакет postgresql-client.

И далее там:

psql -U пользователь -h IP_сервера -W

И введи пароль. Можешь настроить разрешение на подключение без пароля.

anonymous
()
Ответ на: комментарий от anonymous

я в pg_hba.conf поставил

IPv4 local connections:

host all all 192.168.1.0/24 md5

в postgresql.conf поставил

- Connection Settings -

listen_addresses = ‘*’

Продырявил Айпитейблс

телнет садится на порт 5432, а через

ivan@org1:~$ psql -U test -h 192.168.1.202 -W Password: psql: error: connection to server at «192.168.1.202», port 5432 failed: Connection refused Is the server running on that host and accepting TCP/IP connections?

friis
() автор топика
Ответ на: комментарий от friis

сорри ребутнул сервак с постгресом - теперь вышло : ivan@org1:~$ psql -U test -h 192.168.1.202 -W Password: psql: error: connection to server at «192.168.1.202», port 5432 failed: FATAL: password authentication failed for user «test» connection to server at «192.168.1.202», port 5432 failed: FATAL: password authentication failed for user «test»

friis
() автор топика
Ответ на: комментарий от friis

Ну ты уж сам разберись, очень похоже, что плохо продырявил iptables.

Либо не слушает СУБД порт на всех интерфейсах (IP адресах).

Смотри вывод:

sudo netstat -tulpn | grep 5432

Можешь ещё правила iptables для теста очистить и выставить политики ACCEPT.

Тебе весь курс по администрированию Linux, по работе сетей нужно рассказать?

Попробуй так выставить:

host    all             all             0.0.0.0/0               md5

Разрешающая строка должна быть последней и других строк, под которые может попасть коннект быть не должно.

anonymous
()
Ответ на: комментарий от friis

FATAL: password authentication failed for user «test»

Отлично - значит неправильно задал пароль.

Задай правильно, проверь что с локального сервера, где запущена СУБД коннект под тестовым пользователем и паролем проходит.

anonymous
()
Ответ на: комментарий от friis

И пожалуйста, когда отправляешь сообщение на форум, чуть ниже формы с текстом комментария и выше кнопки поместить есть текст, прочти его, там есть ссылка на разметку.

Оформляй вывод команд согласно разметке блока кода.

В описании раздел называется «Код и спецсимволы».

И используй кнопку «Предпросмотр».

Уважай других, не вываливай кашу.

anonymous
()
Ответ на: комментарий от anonymous

Уважаемый, thesis!

Ваши советы сильно мне помогли - действительно дьявол скрывался в мелочах - psql(и pgadmin) не могли автризоваться по сети - хотя настройки на доступ были сделаны. Кто ж мог подумать что пользователю test нужно дополнительно (не в ОС) а в постгре проставить пароль.

в любом случае заработало - ну и настройка PHP вот по этому примеру: https://www.php.net/manual/ru/pgsql.examples-basic.php

friis
() автор топика
Ответ на: комментарий от friis

Я думаю, что @thesis тоже будет рад.

Но я не он.

В любом случае хорошо, что ты разобрался.

Пользователя test в системе создавать не нужно для того, чтобы под ним авторизовываться на СУБД.

В СУБД свои пользователи, в системе свои.

anonymous
()
Ответ на: комментарий от anonymous

«Пользователя test в системе создавать не нужно для того, чтобы под ним авторизовываться на СУБД.»

Ну я на него в системе переключался(пароль в системе вводил) и из него уже в psql заходил и там таблицы создавал. - но видимо это неправильный путь.

а вам как лайки проставить?

friis
() автор топика