Установка сервера 1С и PostgreSQL на Ubuntu Server

 

В этой статье я попробую рассказать об установке сервера 1С и сервера PostgreSQL на операционной системе Ubuntu 16.04/18.04. В статье используется версия сервера 1С — 8.3.13.1472 и версия PostgreSQL — 10.3-2.1C. Кроме этого в статье приведена информации о некоторых дополнительных настройках.

Установка PostgreSQL

В начале нужно установить необходимые локали и определить локаль по умолчанию. Локали определяют используемые в системе языки, а также всякие региональные особенности — форматы чисел, даты и времени, денежные знаки и прочее. Локаль по умолчанию должна совпадать с языком базы данных,  которая будет создана сервером 1С при создании информационной базы.

sudo dpkg-reconfigure locales

Выбор ru_RU локали
Выбор ru_RU локали
Выбор локали по умолчанию
Выбор локали по умолчанию

Далее установим библиотеку libicu. На момент написания статьи процесс установки этой библиотеки отличался для разных версий Ubuntu, приведу оба варианта, Ubuntu 16.04:

sudo apt-get install libicu55

Ubuntu 18.04:

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 10 на Ubuntu 16.04/18.04
Установка PostgreSQL 10 на Ubuntu 16.04/18.04
 

Настройка 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:

sudo service postgresql restart

Теперь у нас есть возможность поменять пароль суперпользователя 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 в процессе установки попросит принять лицензионное соглашение:

ttf-mscorefonts-installer предлагает лицензионное соглашение
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 нужно добавить строки:

<IP-адрес сервера> <результат команды 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 можно так:

apache2 -v

Включение отладки на сервере

Останавливаем сервер:

sudo service srv1cv83 stop

В файле /etc/init.d/srv1cv83 находим строку:

#SRV1CV8_DEBUG=

Приводим ее к виду:

SRV1CV8_DEBUG=1

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

sudo service srv1cv83 start

В конфигураторе на клиентской машине идем в «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» и включаем два пункта:

  • «Устанавливать режим разрешения отладки»
  • «Начинать отладку при запуске»
Включение режима отладки
Включение режима отладки

Настройка UFW

UFW — это простая утилита для конфигурирования файрвола Netfilter.

Разрешаем SSH:

sudo ufw allow 22

Apache:

sudo ufw allow 80

sudo ufw allow 443

Порты для работы 1С (если используются стандартные порты):

sudo ufw allow 1540

sudo ufw allow 1541

sudo ufw allow 1543

sudo ufw allow 1560:1591/tcp

Включаем UFW:

sudo ufw enable

Нужна ли лицензия на сервер?

На момент написания статьи (версия технологической платформы 8.3.13.1472) лицензия на сервер не требуется, все прекрасно работает без нее.

На этом все, надеюсь, что данная статья была Вам полезна.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (оценок: 13, средняя оценка: 4,69 из 5)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Комментарии: 27
  1. Кирилл

    Привет! Поставил 1с сервер и постгрес по твоей инструкции, делал все 1 в 1, только версии сейчас на сайте итс немного свежее, что платформы, что субд. Так вот сервер работает, постгрес работает. Подключаюсь по лан с другой машины, пытаюсь создать базу и после некторого ожидания выходит ошибка «Ошибка при создании информационной базы. Ошибка при выполнении операции с информационной базой.» и все! Никаких подробностей больше нет. Может подскажешь куда копать? Или может где и какие логи можно глянуть, вдруг там более подробное описание ошибки будет. Сервер убунту 18.04

    1. Привет, советую проверить видит ли 1С сервер PostgreSQL, т.е. прописать правильную информацию в hosts. Если и 1С и PostgreSQL нормально работают, то других причин не могу придумать.

    2. Oleg

      Привет!
      Кирилл, победил проблему?

  2. Владимир

    Отличная статья.Ясно и понятно. Только у меня одна проблема.
    При загрузке dt в новую (или в старую) базу выскакивает сообщение

    server_addr=tcp://serv1c:1560 descr=recv returns zero, disconnected line=1587 file=src\DataExchangeTcpClientImpl.cpp

    Все, потом пишет , что база разрушена. До этого у меня все работало на ubuntu 12.10 и postgresql 9.4. Хрени такой не было. Куда копать, ума не приложу..

    1. Владимир

      Выяснилось, что эта ошибка выскакивает только если стоит сервер 1с x32, на х64 такой беды нет.

  3. Денис

    Статья самолет, молодец, огромное спасибо.
    кто не может победить подключение к серверу то ковыряйте /etc/postgresql/10/main/pg_hba.conf
    проще для проверки поставить вместо md5=> trust

  4. code.red

    «скачиваем дистрибутив PostgreSQL 10 с сайта «1С»»
    поделитесь ссылкой, не могу найти где качать

    1. Ссылка такая: https://releases.1c.ru/project/AddCompPostgre, но для доступа требуется регистрация и наличие зарегистрированных продуктов/подписки ИТС. Впрочем я почти уверен, что подойдет и дистрибутив загруженный с оф. сайта: https://www.postgresql.org/download/linux/ubuntu/

      1. Павел

        ключевое слово «почти»…
        не подойдет!

        1. Vasya

          НЕ почти, а ПОДХОДИТ

  5. Иван

    Здравствуйте, подскажите пожалуйста, после команды

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

    выдает ошибку

    dpkg: ошибка при обработке архива libpq5_10.3-2.1C_amd64.deb (—install):
    нет доступа к архиву: No such file or directory
    При обработке следующих пакетов произошли ошибки:
    libpq5_10.3-2.1C_amd64.deb
    Вроде все по мануалу делаю. В чем может быть проблема?

    1. G-Tiger

      Ну вроде бы понятная ошибка, что файл или директория не найдены. Нужно либо перейти в папку с пакетом и запускать установку оттуда либо указывать полный путь до пакета.

  6. Анатолий

    Здравствуйте,
    Спасибо за статью!
    Подскажите, чтобы обновить сервер после выхода новой версии, достаточно как на windows установить новую версию и всё? Или есть какие-то тонкости обновления?
    Спасибо!

  7. G-Tiger

    Плюсую.
    Тоже интересует момент с обновлением сервера.

    1. Сергей (автор)

      Сам еще не обновлял версию сервера на Ubuntu, но в теории (и по информации от коллег) трудностей возникнуть не должно — просто ставим новую версию поверх старой, как в Windows.

  8. G-Tiger

    Читая описание установки появляется чувство недосказанности вот в этом моменте:
    «На момент написания статьи в репозиториях Ubuntu 18.04 не было актуальных версий требуемых пакетов. Если в настоящее время их все еще нет, то можно попробовать добавить репозитории с неактуальными версиями пакетов. »

    А какие версии пакетов являются актуальными?!

    1. Сергей (автор)

      Имеется ввиду, что на момент написания статьи требуемые пакеты отсутствовали в стандартных репозиториях для Ubuntu 18.04. Вероятно на тот их еще не проверили и не включили в репозиторий.

      1. G-Tiger

        Осознал.) Вроде бы всё из репозитория установил, лишних телодвижений не потребовалось. Работает.
        Спасибо!

  9. dust

    мануал огонь.
    все взлетело даже без бубна

  10. Андрей

    При проверке статуса сервера 1С выдаёт такие строки:
    srv1cv83.service — LSB: Starts and stops the 1C:Enterprise daemons
    Loaded: loaded (/etc/init.d/srv1cv83; bad; vendor preset: enabled)
    Active: active (exited) since Ср 2019-06-19 15:03:33 MSK; 21h ago
    Docs: man:systemd-sysv-generator(8)

    июн 19 15:03:28 klaster su[2956]: PAM adding faulty module: pam_systemd.so
    июн 19 15:03:28 klaster su[2956]: PAM unable to dlopen(pam_gnome_keyring.so): /lib/security/pam_gnome_keyring.so: невозможно открыть р
    июн 19 15:03:28 klaster su[2956]: PAM adding faulty module: pam_gnome_keyring.so
    июн 19 15:03:28 klaster su[2956]: Successful su for usr1cv8 by root
    июн 19 15:03:28 klaster su[2956]: + ??? root:usr1cv8
    июн 19 15:03:28 klaster su[2956]: pam_unix(su:session): session opened for user usr1cv8 by (uid=0)
    июн 19 15:03:33 klaster srv1cv83[2941]: Starting 1C:Enterprise 8.3 server: OK
    Что с этим делать?

  11. sergei

    А вот как оно по сравнению с 9.6 ? Стоит ли переходить?

    1. Vasya

      Никак, 12.1 нужно ставить сразу

  12. Адександр

    Толковая статья, все получилось правда не с первой попытки. С линуксом только начал дружить и не совсем понимаю некоторые моменты.
    Например: пришлось оставить
    listen_addresses = ‘*’
    при localhost свзяка не работает, хотя оба сервера на одной машине. Подключаюсь к серверу и создаю базу правда с другого компьютера;
    в дистрибутивах 1С Postgresql есть еще патчи — в статье о них ни слова, что это такой и для чего это нужно?
    после upgrade ubuntu сервер postgresql не запускается. Пришлось postgresql откатить до версии из статьи. Наверняка придется скоро обновиться будет не плохо увидеть подробный мануал.
    Спасибо.

  13. Алексей

    Все отлично стало на 18.04.

    Ньюансы, возможно автор поправит в статье:
    sudo apt-get install ttf-mscorefonts-installer — не устанавливается нормально.
    Решение, может и не совсем верное, но действенное:

    wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
    sudo dpkg -i ttf-mscorefonts-installer_3.6_all.deb

    Так же добавить к установке postgresql 1C:
    sudo apt-mark hold postgresql-10
    sudo apt-mark hold libpq5
    apt-mark hold postgresql-client-10

  14. Сергей

    Здравствуйте. Может и мне подскажете, где я туплю . Ставил по инструкции. Только Postgresql 12, Ubuntu 18.04. Поставил все пакеты 1с
    Но не создаётся служба/юнит srv1cv83
    при попытке запуска получаю ругань, что такого юнита нет
    Подскажите, куда копать

    1. Сергей

      Все вроде норм до пункта «sudo chown -R usr1cv8:grp1cv8 /opt/1C» каталог не найден.
      так же sudo service srv1cv83 start сервис не найден

      1. Вячеслав

        С версии 8.3.18 каталог /opt/1cv8/
        И юнит придется создавать самому:
        1. Скопировать файл srv1cv83 из каталога дистрибутива(рапаковать DEB пакет «dpkg —extract 1c-enterprise-8.3.18.1363-server_8.3.18-1363_i386.deb debdir/») нужной разрядности и версии в каталог /etc/init.d
        cp debdir/opt/1cv8/i386/8.3.18.1363/srv1cv83 /etc/init.d/srv1cv83-1363
        2. Переименовать скопированный файл так, чтобы имя скрипта в рамках каталога /etc/init.d было уникальным! Можно указать в имени скрипт запуска полный номер версии запускаемого сервера. Например, для версии 8.3.18.100, скрипт запуска будет иметь имя srv8-3-18-100.
        3. Скопировать конфигурационный файл src1cv83.conf из каталога нужной разрядности и версии в следующий каталог:
        для RPM-систем: /etc/sysconfig.
        для DEB-систем: /etc/default.
        cp debdir/opt/1cv8/i386/8.3.18.1363/srv1cv83.conf /etc/default/srv1cv83-1363
        4. В каталоге-приемнике, для скопированного конфигурационного файла, следует:
        Удалить расширение файла.
        Переименовать файл так, чтобы его имя совпадало с именем стартового скрипта (созданного при выполнении п.2). В переименованном конфигурационном файле будут содержать параметры запуска того сервера, чье имя носит конфигурационный файл. Для примера из п.2, конфигурационный файл должен называться srv8-3-18-100.
        5. Добавьте скрипт запуска сервера в стартовый скрипт системы:
        для RPM-систем:
        Копировать в буфер обмена
        chkconfig —add
        chkconfig on

        для DEB-систем:
        Копировать в буфер обмена
        update-rc.d defaults
        service start
        В приведенных командах ‑ это то имя скрипта запуска (и конфигурационного файла), который выбрано во время копирования файла srv1cv83 в каталог /etc/init.d. Для примера из п.2, вместо следует подставить srv8-3-18-100.

        В результате в список автоматически запускаемых служб будет добавлен запуск сервера конкретной версии и разрядности.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: