Postgresql 1с ubuntu server 16.04 встановлення. Увімкнення налагодження на сервері

01.11.2019 Програми

Як відомо, 4 липня фірма 1С випустила нову платформуверсії 8.3. Крім виправлення помилок і додавання нових можливостей даний реліз платформи приніс також очікувану можливість - натисаючи робота в середовищі Linux.

Однак при встановленні є ряд підводного каміння(особливо для новачків у Linux), які ускладнять установку і можливо сформують негативне враження про новий режим роботи.

Я постараюся якомога детальніше описати процес встановлення даної платформи на найбільш популярний дистрибутив - Ubuntu 12.04.

Отже, перший крок - скачування самої платформи з сайту 1С. Дистрибутив знаходиться за адресою. З усього списку Вам потрібно завантажити 2 пакети (у нас 64 бітний дистрибутив):

Якщо у вас дистрибутив 32 біти, то і завантажити потрібно 32 бітні пакети. Зауважимо, що для завантаження вищенаведених посилань необхідна підписка на ІТС. Також ці пакети будуть доступні на дисках ІТС (хоча не факт, тому що реліз носить ознайомлювальний характер).

Отже завантажуєте два пакети в папку Далі заходьте до цієї папки файловим менеджером Nautilus, клацаєте правою кнопкою на файлі client.deb64.tar.gz і вибираєте пункт контекстного меню«Витягнути сюди». Теж саме робите з файлом deb64.tar.gz.

У результаті в папці зі скачаними файлами з'являться 2 папки - client.deb64 та deb64. Ось тут для новачків настає більш важкий етап, тому що найпростіший спосіб встановити програми – це скористатися Терміналом (консоль). Для цього викличте програму Термінал. Найпростіший шлях викликати меню Dash (верхня ліва кнопка Unity (Аналог кнопки Пуск в Windows) і в рядку пошуку наберіть пару перших літер програми Тер або повністю слово Термінал.

Запустіть термінал. Надалі можете просто копіювати команди з цього тексту до Терміналу. Насамперед перейдіть в папку розпакованих пакетів у терміналі (нагадаю у нас це папка Завантаження. Дуже зручною можливістю скорочення введення в будь-якому терміналі Linux є клавіша Tab. Натискаючи її ви доповнюєте команду. Linux сама підказує вам варіанти):

cd Завантаження/deb64/(натисніть Enter)

Цією командою ми перейшли до каталогу deb64. Далі в терміналі введіть команду встановлення всіх пакетів із цієї папки:

sudo dpkg -i 1c-*та натисніть клавішу Enter

Консоль запросить пароль і після того, як ви його введете встановить пакети 1С в папку /opt/1 °C/v8.3/x86_64/ (остання папка у разі встановлення 32 бітної версії буде інша). Далі ви повинні увійти в папку /home/leo/Загрузки/client.deb64 для цього:

cd. (Enter)

cd Завантаження/ client.deb64(Enter)

Тут також виконайте команду sudo dpkg -i 1c-* і введіть пароль (втім, консоль пару хвилин буде пам'ятати раніше введений пароль і можливо знову вводити вам його не потрібно).

Після завантаження ви повинні запустити конфігураційний скрипт, який перевірить чи потрібні залежності встановлені і попросить якщо потрібно їх встановити. Крім

цього цей скрипт вимагає встановити каталог шрифтів необхідних роботи 1С.

sudo /opt/1 °C/v8.3/x86_64/utils/config_system /usr/share/fonts/

У мене запуск цієї команди сварився на відсутність двох пакетів:

Please install following package: libgsf

Please install following package: UnixODBC

Для того, щоб їх інсталювати, введіть команди:

sudo apt-get install libgsf-bin

sudo apt-get install unixodbc-bin

Однак, це ще не все. Під час нового запуску перевірочного скрипта він видав повідомлення:

No truetype conversion utility found!

Please install ttf2afm або ttf2pt1!

Пошук у каталозі Ubuntu не дав результату, проте в інтернеті я знайшов необхідний пакет, скачав у папку Завантаження, натиснув правою клавішею на ньому та обрав пункт меню «Відкрити до Центру додатків Ubuntu». Далі в Центрі програм вибрав пункт «Встановити».

Цей пакет можна знайти за назвою:

Ну от і все. Залишилося встановити ключ. Версія для Linux працює як з апаратним захистом, так і з програмним. У мене куплено програмний захист, проте інсталяцію програмної ліцензії ми розберемо у наступній статті.

Що стосується апаратного захисту, то вам потрібно буде завантажити та встановити драйвер апаратного ключа.

Також під час установки, треба не забути відзначити чекбокс навпаки встановлювати ssh-сервер (якщо потрібен) і samba-server (потрібний 1С-у) :)

1) Підготовка:

Налаштуємо мережу, будемо використовувати статичну адресацію:

Sudo vi /etc/network/interfaces

Auto eth0 iface eth0 inet static address 192.168.1.8 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-nameservers 192.181.6.1.

де auto eth0 - говорить системі, що інтерфейс eth0 необхідно включати автоматично при завантаженні системи з наведеними нижче параметрами.

iface eth0 inet static - Вказує на те, що eth0 використовує статичний інтерфейс. Якщо використовується DHCP-сервер, то пишемо замість static - dhcp.

З 12.04 за конфігурацію DNS відповідає програма resolvconf(замість файлу /etc/resolv.conf) тому, якщо не використовується DHCP-сервер, DNS-сервера для статичних інтерфейсів необхідно вносити в /etc/network/interfacesвикористовуючи параметри dns-nameservers, dns-search та dns-domain,відповідні параметрам nameserver, searchі domainв resolv.conf.

Рестарт служби:

Sudo /etc/init.d/networking restart

Оновлюємося:

Sudo apt-get update

Sudo apt-get dist-upgrade

Ставимо Midnight Commander (mc)

Sudo apt-get install mc

2. Встановлення та налаштування сервера баз даних PostgreSQL

Для зручності, що б не набирати щоразу sudoперейдемо в режим руту:

Ставимо пакети необхідні для правильної роботи PostgreSQL:

Apt-get install libicu-dev libxslt1.1 libxml2 libossp-uuid16 libreadline5

Качаємо останню стабільну версію PostgreSQL звідси.

Ставимо пакети командою:

Після цього в системі з'явиться користувач postgres, буде створено скрипт /etc/init.d/postgresql для старту та зупинки СУБД.

Після цього, даємо права на папку pgsql користувачу та групі postgres:

Chown postgres:postgres /var/lib/pgsql

Задаємо пароль користувачу postgres:

Passwd postgres

Редагуємо /etc/group, де існуючий id групи tape:x:26: міняємо на якийсь інший, наприклад 27:). У підсумку мають бути такі рядки:

Postgres:x:26: tape:x:27:

Стартуємо сервіс командою, вказуємо значення змінної LANG. Необхідно для первинного створення бази:

LANG=ru_UA.utf-8 service postgresql start

Може сваритися, що поточне значення Shmmax занадто мало для запуску PostgreSQL і запропонувати вказати своє, але ми надійдемо розумніше і скористаємося наступним скриптом, який порахує та виведе потрібний розмір Shmmax та Shmall у байтах.

SHMMAX - це максимальний розмір (в байтах) на сегменті shared memory дорівнює половині всієї доступної пам'яті на сервері.

SHMALL — загальна кількість пам'яті, що розділяється (у сторінках), яку всі процеси на сервері можуть використовувати.

Потім пропишемо отримані значення за допомогою команди:

Echo "kernel.shmmax = 521981952" >> /etc/sysctl.conf echo "kernel.shmall = 127437" >> /etc/sysctl.conf

Або пропишемо в /etc/sysctl.conf вручну. Для того, щоб зміни набули чинності, набираємо:

Будь-який user postgres with password "YOUR_PASSWORD";

Набираємо \q щоб вийти з консолі.

Файл /var/lib/pgsql/data/pg_hba.conf наводимо до вигляду:

#IPv4 локальні з'єднання: host all postgres 0.0.0.0/0 md5

Головний конфіг /var/lib/pgsql/data/postgresql.confредагуємо відповідно до таких даних: Усереднене налаштування найважливіших параметрів:

Shared_buffers = 1/8 RAM або більше (але не більше 1/4) work_mem = в 1/20 RAM maintenance_work_mem = в 1/4 RAM max_fsm_relations = у плановану кількість таблиць в базах * 1.5 max_fsm_pages в max_fs0; fsync = true wal_sync_method = fdatasync commit_delay = від 10 до 100 commit_siblings = від 5 до 10 effective_cache_size = 0.9 від значення cached, яке показує free random_page_cost = 2 для швидких c0, c0 для швидких cpu, 2 для швидких cpu. x cpu, 0.01 для повільних cpu_index_tuple_cost = 0.0005 для швидких cpu, 0.005 для повільних

Для оптимізації налаштувань розрахованих на максимальну продуктивністьможна спробувати скористатися утилітою pgtune .

Wget http://pgfoundry.org/frs/download.php/2449/pgtune-0.9.3.tar.gz

Tar xvfz *.tar.gz

Переходимо до каталогу з pgtune, виконуємо команду:

./pgtune −i $PGDATA/postgresql.conf −o $PGDATA/postgresql.conf.pgtune

-iшлях до вхідного, поточного файлу налаштувань postgresql.conf,

-oшлях до вихідного, нового файлу налаштувань postgresql.conf.

В результаті виконання команди отримаємо ідентичний вихідний файлналаштувань, за винятком кількох нових pg_tune-параметрів у самому кінці файлу.

$PGDATA- Змінна вказівка ​​на /var/lib/pgsql/data. Якщо не задана, вказати можна в /etc/environment.

Більше повну інформаціюз налаштування postgresql.conf дивимося у Etersoft або стосовно 1С на сайті Вечеслава Гільова. Для тих, хто хоче заглибитися докладніше в процес вивчення PostgreSQL існує чудовий, докладний мануал від Олексія Васильєва. :)

Найчастіше використовувані команди Postgresql:

Змінити root-пароль:

ALTER USER postgres WITH PASSWORD 'newpassword';

3. Встановлення 1С Підприємство 8

Для правильної роботи сервера 1С Підприємство встановимо такі пакети:

Sudo apt-get install imagemagick libglib2.0-dev libgsf-1-dev texlive-base ttf-mscorefonts-installer libfreetype6 libfreetype6-dev unixodbc unixodbc-dev

Качаємо технологічну платформу 1С8.2 для Linux (Debian/Ubuntu) із сайту 1С.

Установку пакетів потрібно проводити у порядку, т.к. Існують залежності.

Якщо встановлювати все одразу по масці, можуть виникнути помилки.

1) 1c-enterprise82-common_8.2.15-319_amd64.deb // загальні компоненти сервера
2) 1c-enterprise82-common-nls_8.2.15-319_amd64.deb // національні ресурси для загальних компонентів
3) 1c-enterprise82-server_8.2.15-319_amd64.deb // сервер 1С: підприємство 8.2 для Linux
4) 1c-enterprise82-server-nls_8.2.15-319_amd64.deb // Національні ресурси для сервера 1С
5) 1c-enterprise82-ws_8.2.15-319_amd64.deb // адаптер для публікації Web-сервісів 1С: Підприємства 8 на веб-сервері на основі Apache HTTP Server 2.0 або Apache HTTP Server 2.2;
6) 1c-enterprise82-ws-nls_8.2.15-319_amd64.deb // Національні ресурси для компонентів веб-сервісів 1с8.2

Додаємо в автозавантаження:

Update-rc.d srv1cv82 defaults

Користувачеві usr1cv82 дозволяємо писати в /opt/1C та /home/usr1cv82

Chown -R usr1cv82:grp1cv82 /opt/1C

Chown -R usr1cv82:grp1cv82 /home/usr1cv82

Перезапускаємо сервер. Перевіряємо коректність старту служби:

Service srv1cv82 status

Повинно висвітиться:

Init script: STARTED Ragent: RUNNING

На файрволі, якщо використовується, для роботи сервера 1С повинні бути відкриті наступні порти: tcp:1540 – агент сервера (ragent) tcp:1541 – головний менеджер кластера (rmngr) tcp:1560-1591 – діапазон мережевих портів для динамічного розподілу робочих процесів. (достатньо відкрити tcp:1560)

A INPUT -p tcp -m state --state NEW-m tcp --dport 1540-j ACCEPT-A INPUT-p tcp-m state --state NEW-m tcp --dport 1541-j ACCEPT-A INPUT-p tcp-m multiport --dports 1560:1591 - j ACCEPT

Перевірка працездатності робочих процесів сервера:

Netstat-tlnp | grep:15

Повинні отримати приблизно таку картинку:

Tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN 2814/rphost tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN 2799/ragent tcp 0 0 0.0.0.0.0.0.0.0. / rmngr

Але, отримуємо таке:

Tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN 960/ragent

Також переглянути запущені процеси можна за допомогою команди:

Повинні отримати приблизно таке:

Usr1cv82 931 0.0 1.8 338376 18612 ? Ssl Jul04 0:41 /opt/1C/v8.2/x86_64/ragent -daemon usr1cv82 935 0.1 3.0 790496 31376 ? Sl Jul04 2:31 /opt/1C/v8.2/x86_64/rmngr -port 1541 -range 1560:1591 usr1cv82 948 0.4 11.5 720804 117412 ? Sl Jul04 6:21 /opt/1C/v8.2/x86_64/rphost -range 1560:1591 -reghost ubuntus12 -re

Але запускається лише ragent:

Usr1cv82 931 0.0 1.8 338376 18612 ? Ssl Jul04 0:41 /opt/1C/v8.2/x86_64/ragent -daemon

На жаль, танці з бубном ні до чого не привели, і права виставлені скрізь коректно і мережа налаштована належним чином. Нагуглив, що з 15 релізом у багатьох схожі проблеми, а в мене 8.2.15-319. А 318 Пам'ятається працював:) Вирішив спробувати останній на момент написання огляду 8.2.16.362 і про диво, з першого разу все завелося як слід.

Тепер необхідно перевірити коректність установки компонентів, які ми встановили на початку за допомогою перевіряючого скрипту:

/opt/1C/v8.2/x86_64/utils/*config_server

Якщо не отримуємо не якихось повідомлень, а в директорії /opt/1C/v8.2/x86_64/conf/grcmncfg з'явився файлик type.xml то значить все ок, в моєму випадку, скрипт видає купу помилок. У першому повідомлення йдеться про те, що неможливо отримати доступ до якогось файлу libc.

Cannot access /lib/libc-*.so: No such file or directory Cannot access /lib64/libc-*.so: No such file or directory

Подивимося, де цей файл насправді сидить:

Find / -name "libc-*.so" -print

Отримуємо наступний вихлоп:

/lib/x86_64-linux-gnu/libc-2.15.so

Не дивно, що скрипт його не знаходить, робимо по черзі два симлінки:

Ln -s /lib/x86_64-linux-gnu/libc-2.15.so /lib/libc-2.15.so ln -s /lib/x86_64-linux-gnu/libc-2.15.so /lib64/libc-2.15.so

Після чого знову запускаємо скрипт. Помилка з «доступом» зникає, але залишається така:

./config_server: line 193: [: too many arguments ./config_server: line 193: [: too many arguments ./config_server: line 193: [: too many arguments ./config_server: line 193: [: too many arguments ./ config_server: line 193: [: too many arguments

У 193 рядку міститься наступний запис, який вказує на опитування змінної $SYSTEM_LIB_PATH, де мабуть повинні бути потрібні 1су бібліотеки.

[! -e $aliasFullName ] && return 1

Подивимося, що не може виявити скрипт, запускаємо:

Echo $aliasFullName

Отримуємо:

Can't detekt SYSTEM_LIB_PATH, please set this environment variable manually!/libWand.so Can't detect SYSTEM_LIB_PATH, please set this environment variable manually! 1.so Can't detekt SYSTEM_LIB_PATH, please set this environment variable manually!/libglib-2.0.so Can't detect SYSTEM_LIB_PATH, please set this environment variable manually!/libodbc.so

Як я зрозумів, SYSTEM_LIB_PATH повинен виявляти шукані файли у трьох можливих директоріях:

/usr/lib /usr/lib32 /usr/lib64

Також необхідно вручну задати SYSTEM_LIB_PATH в /etc/environment. Наприклад, нехай шукає бібліотеки тільки в /usr/lib/

SYSTEM_LIB_PATH="/usr/lib"

Перезапускаємо сервер, знову запускаємо скрипт, отримуємо наступне:

/usr/lib/libWand.so /usr/lib/libfreetype.so Please install following package: FreeType /usr/lib/libgsf-1.so /usr/lib/libglib-2.0.so Please install following package: libglib /usr /lib/libodbc.so Please install following package: UnixODBC

Файли libWand.soі libgsf-1.soзнаходяться там, де потрібно. Інші файли libfreetype.so, libglib-2.0.soі libodbc.soзнаходяться у /usr/lib/x86_64-linux-gnu. Відповідно знову робимо смлинки:

Ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so ln -s /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/libglib -2.0.so ln -s /usr/lib/x86_64-linux-gnu/libodbc.so /usr/lib/libodbc.so

Запускаємо повторно скрипт, тепер бачимо, що всі бібліотеки у потрібних нам директоріях.

/usr/lib/libWand.so /usr/lib/libfreetype.so /usr/lib/libgsf-1.so /usr/lib/libglib-2.0.so /usr/lib/libodbc.so

На клієнті, якщо Windows, заходимо в консоль керування 1CV8 Servers (Адміністрування серверів 1С Підприємства). Тиснемо, додати Центральний сервер 1С:Підприємства 8.2, додаємо по імені. У вкладці робочі сервери має з'явитися запис. Створюємо нову базу, або за допомогою консолі управління, або в самому клієнті 1С вибираємо опцію:

Додати нову інформаційну базу.

Запускаємо 1С. Тест Гільова видає 13,05 балів.

Щодо HASP-ключів, якщо до 12 користувачів то потрібен лише мережевий ключ з маркуванням типу NETXX ORGL8, де XX – кількість клієнтських ліцензій. Якщо більше 12 користувачів, але потрібний також локальний ключ для сервера. Фіолетовий ключ HASP HL ​​з маркуванням типу ENSR8 для 32x-бітного сервера або зелений ключ HASP HL ​​Max маркуванням ENS8SA для 64-бітного. Ключ HASP HL ​​Max підтримує також 32-бітовий сервер.

Для нормальної роботи HASP-ключів необхідно встановити два пакети, що включають драйвер ключа aksusbd і менеджер ліцензій hasplm. Має сенс ставити модифіковані варіанти драйверів від Entersoft. Для нормальної роботи haspd, потрібна підтримка 32-бітових програм.

Тому додаємо її встановленням пакету ia32-libs.

Apt-get install ia32-libs

Тепер сам HASP та менеджер ліцензій:

Dpkg -i http://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/12.04/

Вставляємо ключ, перевантажуємо сервер. Працездатність ключів перевіряємо командою:

Sudo service haspd status

Повинні бути запущені: aksusbd, winehasp, hasplm, hasplmd.

4. Публікація на веб-сервері

Ставимо apache:

Apt-get install apache2

Редагуємо /etc/apache2/apache2.conf , де ставимо директиву ServerName, яка вказує на ім'я сервера.

ServerName "ubuntus12"

В іншому випадку при запуску apach'a отримаємо повідомлення:

Httpd: Правильно не визначено значення сервера, який повністю зафіксував домашній ім'я, використовуючи 127.0.0.1 для ServerName

У кореневому каталозі сайту, створюємо директорію base, де base - ім'я бази, до якої ми надаватимемо доступ.

Mkdir /var/www/base

Тепер нам необхідно запустити спеціальний скрипт для публікації бази на веб-сервері:

Переходимо в /opt/1C/v8.2/x86_64/ Запускаємо скрипт з наступними параметрами:

./webinst -apache22 -wsdir base -dir "/var/www/base" -connStr "Srvr="ubuntus12";Ref="base";" -confPath /etc/apache2/httpd.conf

Перевіряємо коректність змін. У /etc/apache2/httpd.conf мають бути такі рядки:

LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so" # 1c publication Alias ​​"base" "/var/www/base/" AllowOverride None Options None Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor "/var/www/base/default.vrd"

У /var/www/base/ так само має з'явитися файл default.vrd два останні рядки якого мають виглядати приблизно так:

Base="/base" ib="Srvr="ubuntus12"; Ref="base";

Видаємо права на директорію, перезапускаємо Apache:

Chown -R www-data:www-data /var/www/base

Service apache2 restart

Заходимо браузером, попередньо відключивши спливаючі вікна.

http://ubuntus12/base

І отримуємо таке повідомлення:

Воно, і зрозуміло, без спеціального мережевого ключа, не працюватиме:)

5. Резервне копіюваннята відновлення:

Даємо права користувачеві postgres на тут папку, куди будемо вивантажувати backup.

Chown postgres:postgres /mnt/net

У /mnt/netу мене змонтована віндова куля, за допомогою команди:

Mount -t smbfs -o username=test,password=11111111,iocharset=utf8 //192.168.1.8/distr /mnt/net

Відмонтувати, примусово закривши всі підключення, якщо потрібно:

Umount -l /mnt/net

Резервне копіювання (Backup):

Pg_dump -U postgres -Fc -Z9 dbname -f /mnt/net/Backup/Base/dbname.dump

U (користувач)
-F (формат файлу, що видобувається)
з (custom — внутрішній формат стиснення pg_dump, можливі варіанти tar і plain text)
-Z (Встановити режим стиснення)
0 - 9 (0 - без стиснення, 9 - максимальний режим)
-f (витягувати цей файл)

Якщо вивантажуємо на гвинтову кулю, потрібний повний доступ для Users.

Відновлення (тільки з-під користувача postgres):У нову базу:

Createdb -T template0 newdb

#!/bin/sh BKPDIR="/mnt/net/PostgreSQL" DATEYMD=`date "+%Y-%m-%d"` pg_dump -Fc -Z9 mydb -f "$(BKPDIR)/$(DATEYMD) -mydb-PostgreSQL.dump"

Запис у crontab (під користувача postgres):
su postgres
crontab -e // Додати завдання
crontab -l //перегляд завдань
crontab -r // видалити завдання

# запустити о 18:50 хвилин

50 18 * * * sh /home/scripts/backup.sh

# запускати кожні 15 хвилин

*/15 * * * * sh /home/scripts/backup.sh

У цій статті я спробую розповісти про встановлення сервера 1С та сервера PostgreSQL на операційній системі Ubuntu 16.04/18.04. У статті використовується версія сервера 1С – 8.3.13.1472 та версія PostgreSQL – 10.3-2.1C. Крім цього, у статті наведено інформацію про деякі додаткові налаштування.

Установка PostgreSQL

Спочатку необхідно встановити необхідні локалі і визначити локаль за замовчуванням. Локалі визначають мови, що використовуються в системі, а також всякі регіональні особливості - формати чисел, дати і часу, грошові знаки та інше. За умовчанням локаль має збігатися з мовою бази даних, яка буде створена сервером 1С при створенні інформаційної бази.

sudo dpkg-reconfigure locales


sudo apt-get install libicu55

wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7ubuntu0.4_amd64.deb

sudo dpkg -i libicu55_55.1-7ubuntu0.4_amd64.deb

Раніше пакет "postgresql-common" входив до складу дистрибутива, який розміщувався на сайті "1С", тепер же (починаючи з PostgreSQL 9.6.3-1.1C) цей пакет потрібно встановлювати зі стандартних репозиторіїв.

Тут виникає невелика скрута, пов'язана з тим, що ми встановлюємо PostgreSQL 10: на момент написання статті стандартний репозиторій містить версію, що не підходить для PostgreSQL 10 пакета «postgresql-common».

Щоб виправити це, потрібно створити файл /etc/apt/sources.list.d/pgdg.list і записати в нього рядок, для Ubuntu 16.04:

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

для Ubuntu 18.04:

deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

Потім потрібно виконати такі команди:

wget --quiet-O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

sudo apt-get update

Після цього можна встановити потрібну нам версію пакету postgresql-common:

sudo apt-get install postgresql-common

Підготовчі роботи закінчені, завантажуємо дистрибутив PostgreSQL 10 з сайту «1С», розпаковуємо його (там лише три пакети) і встановлюємо саме в такому порядку:

sudo dpkg -i libpq5_10.3-2.1C_amd64.deb

sudo dpkg -i postgresql-client-10_10.3-2.1C_amd64.deb

sudo dpkg -i postgresql-10_10.3-2.1C_amd64.deb

Якщо все пройшло нормально, то виглядатиме це приблизно так:


Налаштування PostgreSQL

Після встановлення можна зробити деякі параметри PostgreSQL.

Від імені суперкористувача відкриваємо файл /etc/postgresql/10/main/pg_hba.conf і змінюємо рядок:

local all postgres peer

local all postgres trust

Це дозволить увійти під користувачем postgresбез пароля.

Крім цього, можна відкрити файл /etc/postgresql/10/main/postgresql.conf (теж від імені супер користувача) і поміняти в ньому рядок:

listen_addresses = "*"

listen_addresses = "localhost"

Це обмежить підключення до PostgreSQL локальною машиною. Таким чином, якщо сервер 1С і PostgreSQL знаходяться на різних комп'ютерах, то це або взагалі не потрібно робити, або замість "*" потрібно вказати IP-адресу сервера 1С.

Після всіх цих маніпуляцій перезапускаємо сервер PostgreSQL:

Тепер у нас є можливість змінити пароль суперкористувача postgres:

psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD "password""

Відключаємо безпарольний доступ: знову від імені суперкористувача відкриваємо файл /etc/postgresql/10/main/pg_hba.conf і змінюємо рядок:

local all postgres trust

local all postgres md5

Наприкінці ще раз перезапускаємо сервер:

sudo service postgresql restart

Встановлення сервера 1С

Почати, як завжди, потрібно з встановлення додаткових бібліотек:

sudo apt-get install imagemagick

sudo apt-get install unixodbc

sudo apt-get install ttf-mscorefonts-installer

sudo apt-get install libgsf-1-114

Для версії 8.3.13 і вище використовується бібліотека ImageMagick, що входить до складу дистрибутива, так що встановлювати пакет imagemagickне обов'язково (хоча шкоди від цього не буде).

Пакет ttf-mscorefonts-installerу процесі установки попросить прийняти ліцензійну угоду:


На момент написання статті у репозиторіях Ubuntu 18.04 не було актуальних версій потрібних пакетів. Якщо їх все ще немає, можна спробувати додати репозиторії з неактуальними версіями пакетів. Створюємо файл /etc/apt/sources.list.d/raring.list та записуємо в нього наступні рядки:

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse

Після цього виконати команду:

sudo apt-get update

Після встановлення додаткових бібліотек завантажуємо з сайту 1С всі необхідні файли (Cервер 1С:Підприємства (64-bit) для DEB-based Linux-систем) і встановлюємо їх у такому порядку:

sudo dpkg -i 1c-enterprise83-common_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-common-nls_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-server_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-server-nls_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-ws_8.3.13-1472_amd64.deb

sudo dpkg -i 1c-enterprise83-ws-nls_8.3.13-1472_amd64.deb

Пакети з приставкою "-nls" потрібні для підтримки додаткових мовта не є обов'язковими до встановлення. Пакети з приставкою "-ws" потрібні для роботи веб-клієнта і також не є необхідними.

Тепер змінимо власника каталогу /opt/1C:

sudo chown -R usr1cv8:grp1cv8 /opt/1C

І запустимо сервер 1С:

sudo service srv1cv83 start


Якщо у Вас правильно налаштована мережа та комп'ютери бачать один одного, то нічого більше робити не потрібно. Якщо ж ні, то необхідно зробити так, щоб сервер 1С бачив сервер PostgreSQL, а клієнтські машини бачили сервер 1С. Для цього у файли /etc/hosts або C:\Windows\System32\drivers\etc\hosts потрібно додати рядки:

<результат команды hostname -f> <результат команды hostname>

Як роздільники повинні бути прогалини, а не табуляції.

Додаткові налаштування

Усі наведені нижче дії є обов'язковими.

Встановлення Apache

Починаючи з версії 8.3.8, платформа 1С підтримує Apache 2.4, тому можна просто встановити поточну версію:

sudo apt-get install apache2

Якщо з якихось причин Вам потрібно Apache 2.2, то для початку потрібно додати репозиторії з неактуальними версіями пакетів, як описано вище (якщо, звичайно, Ви вже цього не зробили). Потім виконати команду:

sudo apt-cache showpkg apache2

Команди видасть список версій доступних до установки, потім, обравши потрібну версію зробити так:

sudo apt-get install apache2=<номер версии>

Наприклад:

sudo apt-get install apache2=2.2.22-6ubuntu5.1

Перевірити версію Apache можна так:

Увімкнення налагодження на сервері

Зупиняємо сервер:

sudo service srv1cv83 stop

У файлі /etc/init.d/srv1cv83 знаходимо рядок:

Наводимо її до вигляду:

Запускаємо сервер:

sudo service srv1cv83 start

У конфігураторі на клієнтській машині йдемо в "Параметри" -> "Запуск 1С: Підприємства" -> "Додаткові" і включаємо два пункти:

  • "Встановлювати режим вирішення налагодження"
  • «Починати налагодження під час запуску»

Налаштування UFW

UFW – це проста утиліта для конфігурування файрвола Netfilter.

Метою цієї роботи є узагальнення методів встановлення та налаштування 32- та 64-бітного 1С Сервера 8.3.7, а також сервера бази даних PostgreSQL 9.4.x, на 64-розрядний Ubuntu Server 14.04.

Установка 32-бітного 1С Сервера на 64-бітний Ubuntu 14.04 - завдання далеко не тривіальне через різницю в архітектурах пакетів і вимагає для свого вирішення нестандартних підходів. Крім цього, торкнулась теми встановлення Apache 2.2 на Ubuntu Server 14.04 замість Apache 2.4, що також є непростим завданням. Необхідність наявності Apache 2.2 пов'язана з тим, що версії платформи 1С 8.3.7 у режимі веб-клієнта працюють тільки з версією Apache 2.2, але не 2.4, яка входить до стандартної конфігурації Ubuntu 14.04.

Таким чином, ця стаття повинна дозволити використовувати на Ubuntu Server 14.04 x64 32- та 64-бітний 1С Сервер 8.3.7 з веб-клієнтом.

У статті використані матеріали статей про встановлення 1С Сервера та PostgreSQL.

Тож почнемо.

Встановіть Ubuntu Server 14.04 x64 з підтримкою OpenSSH та все подальші діївироблятимемо через SSH-консоль.

1. Встановлення PostgreSQL 9.4.x.

Встановлюємо необхідні локалі та визначаємо локаль за замовчуванням (вона повинна співпадати з мовою бази даних, яка створюватиметься при створенні інформаційної бази на 1С Сервері. При не збігу мов у процесі створення інформаційної бази видаватиметься помилка):

sudo locale-gen en_US
(Створюємо локаль англійської мови)
sudo locale-gen ru_UA
(Створюємо локаль російської мови)
sudo update-locale LANG=ua_UA.UTF8
(за умовчанням встановлюємо локаль російської мови)
sudo dpkg-reconfigure locales
(Переконфігуруємо локалі)

Встановлюємо необхідні пакети:

sudo apt-get install libxslt1.1 ssl-cert

Установка PostgreSQL 9.4.2-1.1C:

Завантажуємо необхідну версію бібліотеки libicu (наприклад, каталог /tmp) і встановлюємо її:

cd /tmp
wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu48_4.8.1.1-3ubuntu0.6_amd64.deb
sudo dpkg -i libicu48_4.8.1.1-3ubuntu0.6_amd64.deb

Завантажуємо з сайту 1С усі необхідні deb-файли в каталог /tmp і встановлюємо їх саме в такій послідовності:

cd /tmp
sudo dpkg -i libpq5_9.4.2-1.1C_amd64.deb
sudo dpkg -i postgresql-client-common_154.1.1C_all.deb
sudo dpkg -i postgresql-common_154.1.1C_all.deb
sudo dpkg -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb
sudo dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb
sudo dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb

Установка PostgreSQL 9.4.x (на момент написання статті 9.4.6) із сайту авторів збірки PostgreSQL для 1С (велике спасибі за посилання):

Додаємо репозиторій 1c.postgrespro.ru:

sudo sh -c "echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list"

Імпортуємо ключ репозиторію та оновлюємо список пакетів:

wget --quiet-O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C-92 | sudo apt-key add - && sudo apt-get update

Встановлюємо PostgreSQL:

sudo apt-get install postgresql-pro-1c-9.4

Після встановлення будь-яким із двох варіантів відімені суперкористувача у файлі/etc/postgresql/9.4/main/pg_hba.conf рядок для з'єднання через Unix-сокет

local all postgres peer
для користувача postgres наводимо до вигляду:
local all postgres trust

Для більшої безпеки від імені суперкористувача у файлі/etc/postgresql/9.4/main/postgresql.conf рядок
listen_addresses = "*"
наводимо до вигляду:
listen_addresses = "localhost"

Це обмежить доступ до сервера бази даних PostgreSQL лише всередині машини, на якій він встановлений. Дане обмеження можна реальзувати лише у випадку, коли 1С Сервер та PostgreSQL встановлені на одній машині. Якщо вказані сервери розташовані на різних машинах, необхідно залишити опцію listen_addresses = "*" або замість "*" вказати IP-адресу машини, на якій встановлений 1С Сервер.

Змінюємо пароль суперкористувача postgres:

psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD "password""

Від імені суперкористувача у файлі/etc/postgresql/9.4/main/pg_hba.conf всі методи автентифікації встановлюємо значення md5, наприклад:
local all postgres md5

Перезапускаємо сервіс PostgreSQL:

sudo service postgresql restart

ДОДАТОК:

*Якщо забули або неправильно встановили локаль за замовчуванням перед встановленням PostgreSQL або хочете змінити каталог розміщення кластера бази даних:

Після установки PostgreSQLкластер бази даних розміщується в каталозі, який можна знайти у файлі /etc/postgresql/9.4/main/postgresql.conf у рядку data_directory (зазвичай це /var/lib/postgresql/9.4/main). Якщо необхідно кластер бази даних розмістити в іншому каталозі, наприклад /var/lib/pgsql, то можна зробити наступне:

Створити дампи всіх необхідних баз даних

Зупинити сервіс PostgreSQL:

sudo service postgresql stop

Видалити поточний каталог кластеру бази даних:

sudo rm -rf /var/lib/postgresql

Встановити пароль для користувача UNIX postgres:

sudo passwd postgres

Створити новий каталог кластера бази даних:

sudo mkdir /var/lib/pgsql

Встановити UNIX-користувача postgres власником каталогу /var/lib/pgsql:

sudo chown -R postgres:postgres /var/lib/pgsql

Від імені UNIX-користувача postgres ініціалізувати кластер бази даних з новим каталогом та новою локаллю:

su postgres -c "/usr/lib/postgresql/9.4/bin/initdb -D /var/lib/pgsql --locale=ru_RU.UTF-8"

Від імені суперкористувача у файлі /etc/postgresql/9.4/main/postgresql.conf змінити значення каталогу кластера бази даних нове розміщення, тобто. у наведеному прикладі рядок data_directory = "/var/lib/postgresql/9.4/main"
потрібно привести до вигляду
data_directory = "/var/lib/pgsql"
та зберегти файл

Запустити сервіс PostgreSQL:

sudo service postgresql start

Відновити необхідні бази даних із дампів

*Якщо PostgreSQL встановлювався після того, як було встановлено 1С Сервер, і неможливо підключити клієнт до інфобази:

Перезапустіть сервіс PostgreSQL:

sudo service postgresql restart

Перезапустіть сервіс 1С Сервера:

sudo service srv1cv83 restart

Перезавантажте весь сервер з Ubuntu:

sudo reboot

2. Встановлення Timezone та синхронізація часу (опційно).

При необхідності встановити Timezone та синхронізувати час операційної системи, необхідно виконати такі дії:

Конфігурувати часовий пояс:

sudo dpkg-reconfigure tzdata
та вибрати необхідний часовий пояс

Встановити ntp-протокол і зробити синхронізацію часу:

sudo apt-get install ntp
sudo service ntp stop
sudo ntpdate -s time.nist.gov
sudo service ntp start

3. Встановлення 64-бітного 1С Сервера 8.3.7.

Встановлюємо необхідні залежності:

sudo apt-get install imagemagick
sudo apt-get install unixodbc


sudo apt-get install libgsf-1-114

Завантажуємо з сайту 1С всі необхідні deb-файли в каталог /tmp і встановлюємо їх (логічно виглядає наступна послідовність установки):

cd /tmp
sudo dpkg -i 1c-enterprise83-common_8.3.7-1970_amd64.deb
(обов'язково)
sudo dpkg -i 1c-enterprise83-common-nls_8.3.7-1970_amd64.deb
sudo dpkg -i 1c-enterprise83-server_8.3.7-1970_amd64.deb
(обов'язково)
sudo dpkg -i 1c-enterprise83-server-nls_8.3.7-1970_amd64.deb
(опційно для підтримки додаткових мов)
sudo dpkg -i 1c-enterprise83-ws_8.3.7-1970_amd64.deb
sudo dpkg -i 1c-enterprise83-ws-nls_8.3.7-1970_amd64.deb
(опційно для підтримки додаткових мов)

Запускаємо 1С Сервер:

sudo service srv1cv83 start

4. Встановлення 32-бітного 1С Сервера 8.3.7.

Включаємо підтримку архітектури i386 та оновлюємо список пакетів:

sudo dpkg --add-architecture i386
sudo apt-get update

Встановлюємо необхідні залежності в архітектурі i386:

sudo apt-get install imagemagick:i386
sudo apt-get install unixodbc:i386
sudo apt-get install ttf-mscorefonts-installer
(у процесі встановлення необхідно прийняти умови ліцензійної угоди)

Версія i386 бібліотеки libgsf-1-114 відсутня в репозиторії Ubuntu, але є в репозиторії Debian. Тому нам доведеться завантажити цю бібліотеку з репозиторію Debian.Завантажуємо версію i386 бібліотеки libgsf-1-114 (наприклад, каталог /tmp) і встановлюємо її саме в такій послідовності:

cd /tmp
wget http://ftp.us.debian.org/debian/pool/main/libg/libgsf/libgsf-1-common_1.14.36-1_all.deb
wget http://ftp.us.debian.org/debian/pool/main/libg/libgsf/libgsf-1-114_1.14.36-1_i386.deb
sudo dpkg -i libgsf-1-common_1.14.36-1_all.deb
sudo dpkg -i libgsf-1-114_1.14.36-1_i386.deb

Завантажуємо з сайту 1С усі необхідні deb-файли в каталог /tmp та встановлюємо їх (логічною виглядає наступна послідовність установки):

cd /tmp
sudo dpkg -i 1c-enterprise83-common_8.3.7-1970_i386.deb
(обов'язково)
sudo dpkg -i 1c-enterprise83-common-nls_8.3.7-1970_i386.deb
(опційно для підтримки додаткових мов)
sudo dpkg -i 1c-enterprise83-server_8.3.7-1970_i386.deb
(обов'язково)
sudo dpkg -i 1c-enterprise83-server-nls_8.3.7-1970_i386.deb
(опційно для підтримки додаткових мов)
sudo dpkg -i 1c-enterprise83-ws_8.3.7-1970_i386.deb
(опційно для роботи веб-клієнта)
sudo dpkg -i 1c-enterprise83-ws-nls_8.3.7-1970_i386.deb
(опційно для підтримки додаткових мов)
sudo dpkg -i 1c-enterprise83-crs_8.3.7-1970_i386.deb
(опційно для функціонування сховища змін)

Змінюємо власника каталогу /opt/1C:

sudo chown -R usr1cv8:grp1cv8 /opt/1C

Запускаємо 1С Сервер:

sudo service srv1cv83 start

5. Встановлення Apache 2.2 (опціонально, дякую за рекомендацію).

Від імені суперкористувача додамо до списку наступні репозиторії:

- перемикаємося в консоль суперкористувача:

- додаємо репозиторії:

cat<> /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu precise main restricted universe
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted universe
deb http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
EOF

Редагуємо або створюємо файл /etc/apt/preferences.d/preferences, додаючи до нього наступні рядки:

Package: apache2 *
Pin: release n=precise
Pin-Priority: 900

- виходимо з консолі суперкористувача:

exit

- оновлюємо список пакетів:

sudo apt-get update

- встановлюємо Apache 2.2:

sudo apt-get install apache2

- перевіряємо версію встановленого Apache:

apache2 -v

6. Налаштування файрвола UFW (опціонально).

Для забезпечення більшої безпеки бажано налаштувати та включити файрвол UFW. Для цього необхідно виконати такі дії:

sudo ufw allow ssh
або
sudo ufw allow 22
(якщо для протоколу SSH використовується порт 22)

sudo ufw allow 80
(Для доступу по HTTP-протоколу)

sudo ufw allow 443
(Для доступу по HTTPS-протоколу)

sudo ufw allow 1540
sudo ufw allow 1541
sudo ufw allow 1560:1591/tcp
(Для роботи 1С Сервера, якщо кластер серверів встановлений зі стандартними значеннями портів)

sudo ufw enable
(включаємо файрвол)

7. Встановлення OpenJDK 1.8 (опційно).

При необхідності запуску java-додатків (у тому числі з 1С) можна встановити OpenJDK 1.8 таким чином:

Додаємо ppa-репозиторій та оновлюємо список пакетів:

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update

Встановлюємо OpenJDK:

sudo apt-get install openjdk-8-jdk
(для встановлення JDK)
або
sudo apt-get install openjdk-8-jre
(для встановлення тільки JRE)

Актуалізуємо Java-машину (якщо раніше вже було встановлено молодшу версію Java):

sudo update-alternatives --config java

Актуалізуємо Java-компілятор (якщо раніше вже було встановлено молодшу версію Java):

sudo update-alternatives --config javac

Перевіряємо встановлену версію Java:

java -version

8. Увімкнення режиму налагодження 1С Сервера (опціонально).

Зупиняємо сервіс 1С Сервера:

sudo service srv1cv83 stop

Від імені суперкористувача редагуємо файл /etc/init.d/srv1cv83, а саме - знаходимо наступний рядок:

#SRV1CV8_DEBUG=

розкоментуємо її і надамо значення 1 так, щоб вийшов наступний рядок:

SRV1CV8_DEBUG=1

зберігаємо файл /etc/init.d/srv1cv83 та запускаємо сервіс 1С Сервера:

sudo service srv1cv83 start

На клієнтській машині вменю конфігурації "Параметри" -> "Запуск 1С:Підприємства" -> "Додаткові" включаємо наступні пункти:

"Встановлювати режим вирішення налагодження"

"Починати налагодження під час запуску"

9. Параметри для створення інформаційної бази на сервері та підключення до неї.

Від імені суперкористувача необхідно відредагувати файл /etc/hosts таким чином, щоб у ньому був рядок:

IP адреса машини, на якій встановлено 1С Сервер hostname -f hostname, наприклад:

(проміжки мають бути пробілами, а не табами)

На клієнтській WINDOWS-машині від імені адміністраторау файл C:\Windows\System32\drivers\etc\hosts необхідно додати рядок, вказаний вище, наприклад:
192.168.0.111 test.example.com test

При створенні інформаційної бази в консолі Адміністрації 1С Серверів як сервер бази даних бажано вказувати localhost (припустимо вказувати hostname машини, на якій запущено PostgreSQL і 1С Сервер, і який прописаний у файліC:\Windows\System32\drivers\etc\hosts). Ця рекомендаціядійсна тільки для випадку, коли 1С Сервер та PostgreSQL знаходяться на одній машині. В іншому випадку замість localhost необхідно вказувати hostname машини, на якій встановлено PostgreSQL.

При підключенні до створеної інформаційної бази як кластер серверів бажано вказувати hostname машини, на якій запущено 1С Сервер і який прописаний у файлі C:\Windows\System32\drivers\etc\hosts (для Windows-клієнтської машини), а як інформаційна база в кластері - ім'я інформаційної бази, вказане при її створенні. Якщо кластер серверів запущений на нестандартних портах, то як кластера серверів вказати hostname:port, наприклад srv1c:1741.

Перевіряємо стан сервісів на Ubuntu-сервері:

service postgresql status

Якщо все ОК, то статус має бути "online".

service srv1cv83 status

Якщо всі ОК, то мають бути такі статуси:

Init script: STARTED

Ragent RUNNING

При необхідності перевіряємо статус файрволу:

service ufw status

Якщо файрфол запущено, статус має бути "start/running".

На цьому встановлення та налаштування 1С Сервера + PostgreSQL + Ubuntu 14.04 завершуємо.