В этой статье я попробую рассказать об установке сервера 1С и сервера PostgreSQL на операционной системе Ubuntu 16.04/18.04. В статье используется версия сервера 1С — 8.3.13.1472 и версия PostgreSQL — 10.3-2.1C. Кроме этого в статье приведена информации о некоторых дополнительных настройках.
Установка PostgreSQL
В начале нужно установить необходимые локали и определить локаль по умолчанию. Локали определяют используемые в системе языки, а также всякие региональные особенности — форматы чисел, даты и времени, денежные знаки и прочее. Локаль по умолчанию должна совпадать с языком базы данных, которая будет создана сервером 1С при создании информационной базы.
sudo dpkg-reconfigure locales
Далее установим библиотеку 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
После установки можно сделать некоторые настройки 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 в процессе установки попросит принять лицензионное соглашение:
На момент написания статьи в репозиториях 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) лицензия на сервер не требуется, все прекрасно работает без нее.
На этом все, надеюсь, что данная статья была Вам полезна.
Загрузка...
Привет! Поставил 1с сервер и постгрес по твоей инструкции, делал все 1 в 1, только версии сейчас на сайте итс немного свежее, что платформы, что субд. Так вот сервер работает, постгрес работает. Подключаюсь по лан с другой машины, пытаюсь создать базу и после некторого ожидания выходит ошибка «Ошибка при создании информационной базы. Ошибка при выполнении операции с информационной базой.» и все! Никаких подробностей больше нет. Может подскажешь куда копать? Или может где и какие логи можно глянуть, вдруг там более подробное описание ошибки будет. Сервер убунту 18.04
Привет, советую проверить видит ли 1С сервер PostgreSQL, т.е. прописать правильную информацию в hosts. Если и 1С и PostgreSQL нормально работают, то других причин не могу придумать.
Привет!
Кирилл, победил проблему?
Отличная статья.Ясно и понятно. Только у меня одна проблема.
При загрузке dt в новую (или в старую) базу выскакивает сообщение
server_addr=tcp://serv1c:1560 descr=recv returns zero, disconnected line=1587 file=src\DataExchangeTcpClientImpl.cpp
Все, потом пишет , что база разрушена. До этого у меня все работало на ubuntu 12.10 и postgresql 9.4. Хрени такой не было. Куда копать, ума не приложу..
Выяснилось, что эта ошибка выскакивает только если стоит сервер 1с x32, на х64 такой беды нет.
Статья самолет, молодец, огромное спасибо.
кто не может победить подключение к серверу то ковыряйте /etc/postgresql/10/main/pg_hba.conf
проще для проверки поставить вместо md5=> trust
«скачиваем дистрибутив PostgreSQL 10 с сайта «1С»»
поделитесь ссылкой, не могу найти где качать
Ссылка такая: https://releases.1c.ru/project/AddCompPostgre, но для доступа требуется регистрация и наличие зарегистрированных продуктов/подписки ИТС. Впрочем я почти уверен, что подойдет и дистрибутив загруженный с оф. сайта: https://www.postgresql.org/download/linux/ubuntu/
ключевое слово «почти»…
не подойдет!
НЕ почти, а ПОДХОДИТ
Здравствуйте, подскажите пожалуйста, после команды
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
Вроде все по мануалу делаю. В чем может быть проблема?
Ну вроде бы понятная ошибка, что файл или директория не найдены. Нужно либо перейти в папку с пакетом и запускать установку оттуда либо указывать полный путь до пакета.
Здравствуйте,
Спасибо за статью!
Подскажите, чтобы обновить сервер после выхода новой версии, достаточно как на windows установить новую версию и всё? Или есть какие-то тонкости обновления?
Спасибо!
Плюсую.
Тоже интересует момент с обновлением сервера.
Сам еще не обновлял версию сервера на Ubuntu, но в теории (и по информации от коллег) трудностей возникнуть не должно — просто ставим новую версию поверх старой, как в Windows.
Читая описание установки появляется чувство недосказанности вот в этом моменте:
«На момент написания статьи в репозиториях Ubuntu 18.04 не было актуальных версий требуемых пакетов. Если в настоящее время их все еще нет, то можно попробовать добавить репозитории с неактуальными версиями пакетов. »
А какие версии пакетов являются актуальными?!
Имеется ввиду, что на момент написания статьи требуемые пакеты отсутствовали в стандартных репозиториях для Ubuntu 18.04. Вероятно на тот их еще не проверили и не включили в репозиторий.
Осознал.) Вроде бы всё из репозитория установил, лишних телодвижений не потребовалось. Работает.
Спасибо!
мануал огонь.
все взлетело даже без бубна
При проверке статуса сервера 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
Что с этим делать?
А вот как оно по сравнению с 9.6 ? Стоит ли переходить?
Никак, 12.1 нужно ставить сразу
Толковая статья, все получилось правда не с первой попытки. С линуксом только начал дружить и не совсем понимаю некоторые моменты.
Например: пришлось оставить
listen_addresses = ‘*’
при localhost свзяка не работает, хотя оба сервера на одной машине. Подключаюсь к серверу и создаю базу правда с другого компьютера;
в дистрибутивах 1С Postgresql есть еще патчи — в статье о них ни слова, что это такой и для чего это нужно?
после upgrade ubuntu сервер postgresql не запускается. Пришлось postgresql откатить до версии из статьи. Наверняка придется скоро обновиться будет не плохо увидеть подробный мануал.
Спасибо.
Все отлично стало на 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
Здравствуйте. Может и мне подскажете, где я туплю . Ставил по инструкции. Только Postgresql 12, Ubuntu 18.04. Поставил все пакеты 1с
Но не создаётся служба/юнит srv1cv83
при попытке запуска получаю ругань, что такого юнита нет
Подскажите, куда копать
Все вроде норм до пункта «sudo chown -R usr1cv8:grp1cv8 /opt/1C» каталог не найден.
так же sudo service srv1cv83 start сервис не найден
С версии 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.
В результате в список автоматически запускаемых служб будет добавлен запуск сервера конкретной версии и разрядности.