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

В версии **Webim** [10.6](https://webim.ru/webim-10-6/) была добавлена поддержка СУБД **PostgreSQL** "из коробки". Для подключения этой СУБД **необходимо использовать** новый компонент - **php2db** - специальную прослойку, обеспечивающую взаимодействие PHP с базой данных.

!!! Note "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`) задаётся в секундах. Вы можете задать его по собственному желанию.

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

    ```
    php2db_enable = true
    php2db_query_timeout = 3
    ```

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

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

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

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

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

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

---

Источник: https://webim.ru/kb/devops/connect-postgresql-db.html
