Установка на Ubuntu

Рекомендуемый вариант установки -MINIMAL
Разметка диска - на усмотрение Администратор

Установка postgres-pro-14

Подробную инструкцию по установке postgres-pro можете найти по ссылке на сайте производителя.

https://postgrespro.ru/products/download/postgrespro/

Требования к минимальной инсталляции:

wget https://repo.postgrespro.ru/pgpro-14/keys/pgpro-repo-add.sh
sh pgpro-repo-add.sh

Если наш продукт единственный Postgres на вашей машине и вы хотите сразу получить готовую к употреблению базу:

sudo apt-get install postgrespro-std-14

Проверка успешной установки БД

systemctl status postgrespro-std-14.service
root@srv138:/home/administrator# systemctl status postgrespro-std-14.service
● postgrespro-std-14.service - Postgres Pro std 14 database server
     Loaded: loaded (/lib/systemd/system/postgrespro-std-14.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-10-07 15:35:12 UTC; 47s ago
   Main PID: 24036 (postgres)
      Tasks: 8 (limit: 9443)
     Memory: 67.4M
     CGroup: /system.slice/postgrespro-std-14.service
             ├─24036 /opt/pgpro/std-14/bin/postgres -D /var/lib/pgpro/std-14/data
             ├─24049 postgres: logger
             ├─24051 postgres: checkpointer
             ├─24052 postgres: background writer
             ├─24053 postgres: walwriter
             ├─24054 postgres: autovacuum launcher
             ├─24055 postgres: stats collector
             └─24056 postgres: logical replication launcher

Oct 07 15:35:12 srv138 systemd[1]: Starting Postgres Pro std 14 database server...
Oct 07 15:35:12 srv138 postgres[24036]: 2022-10-07 15:35:12.815 UTC [24036] LOG:  redirecting log output to logging collector process
Oct 07 15:35:12 srv138 postgres[24036]: 2022-10-07 15:35:12.815 UTC [24036] HINT:  Future log output will appear in directory "log".
Oct 07 15:35:12 srv138 systemd[1]: Started Postgres Pro std 14 database server.

Устанавливаем локализацию ru_RU.UTF-8

dpkg-reconfigure locales

Получаем список установленных БД

sudo su - postgres
psql
postgres=# \l
                                    Список баз данных
    Имя    | Владелец | Кодировка |   LC_COLLATE    |  LC_CTYPE   |     Права доступа
-----------+----------+-----------+-----------------+-------------+-----------------------
 postgres  | postgres | UTF8      | ru_RU.UTF-8@icu | ru_RU.UTF-8 |
 template0 | postgres | UTF8      | ru_RU.UTF-8@icu | ru_RU.UTF-8 | =c/postgres          +
           |          |           |                 |             | postgres=CTc/postgres
 template1 | postgres | UTF8      | ru_RU.UTF-8@icu | ru_RU.UTF-8 | =c/postgres          +
           |          |           |                 |             | postgres=CTc/postgres

Производим установку из поставки дистирибутива или на основе DEMO - APP

  • appdb - бизнес база (имя базы данных на усмотрение администратора)

  • xraddb - база метаданных приложения (переименование БД не рекомендуется)

Создаем директорию и помещаем файлы дистрибутива PGHS

mkdir -p /var/lib/pgpro/std-14/dump-imp
cd  /var/lib/pgpro/std-14/dump-imp
postgres@srv134:/var/lib/pgpro/std-14/dump-imp$ ls -latr
итого 35884
drwxr-xr-x 2 postgres postgres     4096 авг 19 17:32 .
drwxr-xr-x 4 postgres postgres     4096 авг 19 17:25 ..
-rw-r--r-- 1 postgres postgres   535928 авг 19 17:31 xraddb.xsquare
-rw-r--r-- 1 postgres postgres 36197840 авг 19 17:32 appdb.xsquare

Создаем пользователя и

ssh root@srv134
su - postgres
postgres@srv134:~$ psql
psql (14.4)
Введите "help", чтобы получить справку.

postgres=# create user xrad_user with encrypted password 'xrad_user';
postgres=# create user app_user  with encrypted password 'app_user';

postgres=# ALTER USER xrad_user WITH SUPERUSER;
postgres=# ALTER USER app_user  WITH SUPERUSER;

exit

Создаем пустые базы

su - postgres
createdb -O app_user  appdb
createdb -O xrad_user xraddb

производим импорт PGHS

su - postgres
psql -U xrad_user -h 127.0.0.1 xraddb  < /var/lib/pgpro/std-14/dump-imp/xraddb.xsquare
psql -U app_user  -h 127.0.0.1 appdb   < /var/lib/pgpro/std-14/dump-imp/appdb.xsquare

Настройка Apache 2.4

Устанавливаем Apache и модули

sudo su - root
apt-get install apache2
systemctl enable apache2
systemctl start apache2
systemctl status apache2

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

Добавляем в файл /etc/hosts и прописываем в локальный DNS организациия

127.0.0.1 pghs.xsquare

Создаем файл конфигурации VirtualHost для pghs сервера

vi /etc/apache2/sites-available/pghs.xsquare.conf

<VirtualHost *:80>
       ServerAdmin info@xsquare.ru
       ServerName  pghs.xsquare
       ServerAlias pghs.xsquare
       DocumentRoot /var/www/pghs.xsquare

       Alias /files "/var/www/pghs.xsquare.files.local"
       <Directory /var/www/pghs.xsquare.files.local>
               Options FollowSymLinks
               AllowOverride None
               Require all granted
       </Directory>

       ProxyPass        /pghs http://127.0.0.1:8888/pghs
       ProxyPassReverse /pghs http://127.0.0.1:8888/pghs

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Включаем сайт http://pghs.xsquare

a2ensite pghs.xsquare.conf
systemctl restart apache2

Настройка дистрибутива XSQUARE - PGHS

Настройка Web Resources XSQUARE - PGHS

Копируем файл Web приложения из дистрибутива

scp -r -P 22 pghs.xsquare root@IP_Server:/var/www/

Копируем файлы настройки Web приложения из дистрибутива

scp -r -P 22 pghs.xsquare.files.local root@IP_Server:/var/www/

Настройка сервер приложений XSQUARE - PGHS

Копируем дистрибутив сервера приложений

scp -r -P 22 /usr/local/xsquare.pghs  root@IP_Server:/usr/local

Настраиваем параметры соединения с PostgreSQL

vi /usr/local/xsquare.pghs/config.json

{
    "app": {
        "port": "8888"
    },
    "AppDatabase": {
        "login": "app_user",
        "password": "app_user",
        "domain": "127.0.0.1",
        "port": "5432",
        "dbName":"app_db",
        "runtimeOptions":{
            "LC_NUMERIC":"ru_RU.UTF-8"
        }
    },
    "XRADDatabase": {
        "login": "xrad_user",
        "password": "xrad_user",
        "domain": "localhost",
        "port": "5432",
        "dbName":"xraddb",
        "runtimeOptions":{
            "LC_NUMERIC":"ru_RU.UTF-8"
        }
    }
}

Создаем сервис

vi /etc/systemd/system/xsquare.pghs.service

[Unit]
Description=PGHS Services
After=syslog.target network.target
After=postgresql.service

[Service]
Type=simple
ExecStart=/usr/local/xsquare.pghs/pghs
WorkingDirectory=/usr/local/xsquare.pghs
Restart=on-failure
RestartSec=3

[Install]
WantedBy=default.target

Включаем для сервиса AvtoStart и запускаем и проверяем статус

systemctl enable xsquare.pghs.service
systemctl start  xsquare.pghs.service
systemctl status xsquare.pghs.service

Открываем и проверяем запуск

http://pghs.xsquare/