PostgreSQL+1C на Ubuntu Linux
Если установлена английская версия Ubuntu, то требуется переконфигурировать локали с помощью команды:
$ sudo dpkg-reconfigure locales
- Добавить репозиторий последней актуальной версии PSQL (на момент написания данной инструкции таковой является 15.4)
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
$ sudo apt update && sudo apt upgrade
$ tar -xvf postgresql_15.1_4.1C_amd64_deb.tar.bz2 $ cd postgresql_15.1_4.1C_amd64_deb && sudo apt install ./* -y
$ sudo nano /etc/postgresql/15/main/postgresql.conf
Раскомментируем эту строчку и присваиваем ей следующее значение:
autovacuum = on autovacuum_max_workers = x # (где x — половина от количества ядер ЦП на сервере СУБД) autovacuum_vacuum_cost_delay = x # (x — пропорционально количеству количеству воркеров, т.е. если кол-во воркеров, например, 6 – увеличиваем значение по умолчанию в два раза) autovacuum_vacuum_scale_factor = 10 autovacuum_analyze_scale_factor = 0.5
Создаём отдельную директорию (например, /var/lib/postgesqldb ) и монтируем раздел нашего SSD-диска (в нашем случае — это /dev/sda2).
$ sudo systemctl stop postgresql $ sudo mkdir -p /var/lib/postgesqldb && sudo chown postgres:postgres /var/lib/postgresqldb && sudo mount /dev/sda2 /var/lib/postgresqldb
Находим строчку data_directory и заменяем значение на ‘/var/lib/postgesqldb’. После чего инициализируем там кластер PSQL:
И заодно добавим в fstab директорию для хранения баз, чтобы она не размонтировалась при следующем перезапуске. Для этого нужно зайти в blkid и найти UUID раздела.
И добавляем следующую строчку:
UUID=xxxx-xxxx-xxxxxx-xxx /var/lib/postgresqldb auto rw,user,auto 0 0
(Где иксы заменяем на UUID раздела, который нашли в blkid).
$ sudo nano /etc/postgresql/15/main/pg_hba.conf
host all all 192.168.89.0/24 md5
При необходимости открыть доступ к базе извне, вместо all all указываем базу данных и пользователя соответственно, а подсеть заменяем на 0.0.0.0/0.
$ sudo systemctl restart postgresql.service && sudo systemctl status postgresql.service
Если всё настроено правильно, то будет следующий вывод:
Рисунок 1 — Проверка работы службы PostgreSQL
$ sudo -u postgres psql -U postgres -c "alter user postgres with password 'postgrespwd';"
Вместо postgrespwd можем указать свой пароль.
Установка сервера 1С
- Скачиваем нужную нам версию сервера 1С на портале ИТС.
- Распаковываем с помощью tar архив и запускаем файл .run:
sudo ./setup-full-8.3.21.1393-x86_64.run
$ sudo useradd usr1cv8 -mp ‘password’
$ sudo nano /etc/systemd/system/1CServer.service [Unit] Description=1C Server agent After=network.target [Service] Restart=Always User=usr1cv8 ExecStart=/opt/1cv8/x86_64/8.3.21.1393/ragent [Install] WantedBy=multi-user.target
$ sudo systemctl daemon-reload $ sudo systemctl start 1CServer && sudo systemctl status 1CServer
Если всё настроено корректно, получим примерно такой вывод:
Рисунок 2 — Проверка работы службы 1C
Убедившись, что всё работает, устанавливаем службу:
$ sudo systemctl enable 1CServer
Подключение базы 1С
Создать базу 1С можно и в терминале Linux через команду, однако, для удобства, мы воспользуемся оснасткой администрирования сервера 1С, установленной на соседнюю машину на ОС Windows Server.
- Перед тем как присоединять базу, если компьютеры не объединены в домен Active Directory, рекомендуется внести имя сервера СУБД и его IP-адрес в «C:\Windows\System32\drivers\etc\hosts», иначе возможно получение ошибки “Этот хост неизвестен” в 1С.
- Не пытайтесь создать пустую базу в PSQL, а затем подключить её в оснастке 1С! Для PostgreSQL базы 1С не являются нормальными, поэтому все базы создаются средствами 1С, как описано ниже.
- Заходим в оснастку администрирования и добавляем Центральный Сервер 1С. В имени сервера вводим имя или IP-адрес сервера СУБД, на котором устанавливали 1С.
- Далее заходим в кластер и добавляем базу: Правой кнопкой мыши нажать на “Информационные базы (Далее ИБ)” > “Создать” > “ИБ”. Заполняем поля:
Рисунок 3 — Параметры информационной базы
Мы добавили ИБ для запуска, можно заходить в конфигуратор и загружать имеющую конфигурацию. Итак, структура готова к работе в 1С.
Нужна помощь? Администрирование linux-серверов и PostgreSQL мы осуществляем в рамках услуги администрирование серверов.
Три круга ада или разворачиваем сервер 1С Ubuntu + PostgreSQL с поддержкой веб-клиента (Apache)
Начну с того, что лично я не люблю 1С и сори за то, что статья попала в разработку. Так же извиняюсь за неформальный подход к статье и ошибки оформления, устал писать документы формальным языком, поэтому подошел к данному процессу по иному + писал саму статью по ночам.
Возникла потребность развернуть клиент-серверную 1С с возможностью публикации на веб-сервер. Тему я эту затрагивал еще год назад, было интересно, как работает серверная 1С-ка, в общем уже тогда я столкнулся с кучей проблем, в связи с тем что по данной теме нет почти информации и много подводных камней, по типу: а сервер 1С должен быть такой же версии, как и платформа; а Postgres должен быть именно Pro и именно патченный. И все эти камни всплывали только тогда, когда я уже все настроил. Поэтому передо мной сейчас стоит 2 цели, довести начатое до конца и написать пошаговую инструкцию, как же это делать.а я же за ошибками не следил
На то что статья, наберет положительные эмоции не рассчитываю, ибо уже сказал к 1С испытываю только негатив и отвращение. Поехали.
- Сервачек под линухом (у меня под это дело Ubuntu 22.04)
- PostgreSQL Pro (с патчами от 1С)
- Платформа 1С (Конечно лицензия, ни каких пираток; Учебка не умеет подключаться к серверу. Учесть, что версия 1С на Бубунте должна быть такой же, как и сама платформа)
- Прямые руки (хотя, если я смог со своими кривыми руками, то и у вас выйдет)
- Бубен или барабан (не заменимая вещь при работе с 1С)
Сразу после аренды сервака меняю локализацию самого сервака, что бы потом не танцевать с бубном вокруг Postgre и сервером 1C.
Выбираем там нужную нам ОС, выбираем версию Postgre и заполняем форму, на почту приходит инструкция по установке (на gmail письмо будет в спаме).
Я устанавливаю 13 версию, вот такими действиями:
1. Требуется установить snapd:
2. Убедитесь, что ваша версия snapd обновлена, введя команду:
3. Установка бесплатного ssl-сертификата выполняется через Certbot. Если вы работаете на сервере, на котором ранее была установлена более старая версия Certbot.
4. Затем для удобства установим симлинк:
Настройка веб-сервера для работы по HTTPS-протоколу выполнится автоматически.
Так как нам нужен сертификат на апач, выполняем именно эту команду:
Просит ввести email — вводим и жмем enter. Потом несколько раз соглашаемся с требованиями.
В конце выводиться просьба выбрать на какой домен выдается сертификат, если у вас нет домена пишем: .sslip.io
* Где — это адрес бубунты
Теперь на всякий случай я меняю дефолтную конфигурацию apache
Задаю параметр RewriteCond % =.sslip.io
* Где — это адрес бубунты