Перейти к содержанию

Подключение СУБД PostgreSQL

В версии Webim 10.6 была добавлена поддержка СУБД PostgreSQL "из коробки". Для подключения этой СУБД необходимо использовать новый компонент - php2db - специальную прослойку, обеспечивающую взаимодействие PHP с базой данных.

N.B.

Стоит отметить, что php2db может работать и с СУБД MySQL. В таком случае СУБД будет проксировать свои запросы через php2db. Такая конфигурация позволяет обеспечить работу одновременно нескольких аккаунтов Webim, использующих различные СУБД.

По умолчанию этот компонент отключен. Для его включения необходимо произвести приведённые ниже шаги:

  1. Задайте необходимые параметры для подключения Webim Server к СУБД PostgreSQL в файле /etc/webim/db.json, например:

    {
        "dbs": {
            "meta": {
                "type": "postgresql",
                "host": "<HOST_IP_ADDRESS>",
                "user": "webim_service",
                "password": "<PASSWORD>",
                "db": "webim_service",
                "schema": "webim_site"
            },
            "pro": {
                "default": {
                    "connection": "db1",
                    "slave": {
                        "connection":"db1"
                    }
                }
            }
        },
        "connections": {
            "db1": {
                "type": "postgresql",
                "host": "<HOST_IP_ADDRESS>",
                "port": "<HOST_PORT>",
                "user": "webim_service",
                "password": "<PASSWORD>",
                "db": "webim_service",
                "timeouts": {
                    "connect": 5
                }
            }
        }
    }
    

    Здесь:

    • <HOST_IP_ADDRESS> - IP-адрес СУБД. В качестве значения принимаются только адреса IPv4;

    • <HOST_PORT> - порт, через который будут приниматься запросы к СУБД. Значением должно являться строго 4 или 5 десятичных цифр, обозначающих номер порта;

    • <PASSWORD> - пароль пользователя СУБД webim_service.

    Таймаут подключения (connections.db1.timeouts.connect) задаётся в секундах. Вы можете задать его по собственному желанию.

  2. В файле /etc/webim/main.ini добавьте строку:

    php2db_enable = true
    php2db_query_timeout = 3
    

    Использование php2db_query_timeout

    Данная опция задаёт таймаут для запросов к БД со стороны php2db, единица измерения - секунды. Значение по умолчанию - 3 секунды.

  3. В директории /etc/webim создайте файл php2db-config.json.

  4. Добавьте в созданный файл следующую конфигурацию:

    {
      "ports": {
          "eta": ["<YOUR_IP_ADDRESS>:<PORT>"]
        }
    }
    

    Здесь <YOUR_IP_ADDRESS> - IP-адрес, на котором будет размещён php2db, <PORT> - порт, через который будет осуществляться взаимодействие.

  5. Перезапустите Webim Server.