Установка 1с предприятие 8.3 на ubuntu 16. Подключаемся к нашему серверу через SSH
В последние годы интерес к альтернативным ОС, прежде всего Linux, возрастает, причем не только со стороны пользователей, но и со стороны разработчиков. Фирма 1С достаточно давно развивает свою платформу для использования в среде Linux, а теперь к ней стали подтягиваться производители торгового оборудования, выпуская драйвера и для этой ОС. Поэтому использование Linux в качестве платформы для рабочего места выглядит все более привлекательно и сегодня мы обобщим свой опыт и расскажем об установке клиентской части 1С:Предприятие в среде современных выпусков Debian / Ubuntu.
Так как в требованиях к актуальным релизам 1С:Бухгалтерия значится минимальный релиз платформы 8.3.12.1529, то мы будем устанавливать последнюю версию платформы 8.3.12 - 8.3.12.1685 , а затем обновим ее до 8.3.13.1513 , тем не менее все сказанное будет актуально для всех текущих версий платформы 8.3.
Для установки мы будем использовать следующие версии операционных систем и рабочих окружений: Debian 9.5 (Gnome 3), Ubuntu 16.04.5 LTS (Unity) и Xubuntu 18.04.1 LTS (XFCE 4). Мы специально выбрали разные рабочие среды, чтобы оценить их влияние на процесс установки, но скажем сразу, особого влияния выбранная рабочая среда не имеет, за исключением предустановленного набора пакетов, поэтому мы постараемся дать максимально развернутую инструкцию, которая во многих случаях окажется избыточной.
Также данная статья будет актуальна для всех дистрибутивов производных от Debian / Ubuntu с поправкой на версии пакетов, для этого обратитесь к документации вашего дистрибутива.
Платформа 8.3.12 и более ранние
Прежде всего установим все необходимые зависимости. В различных версиях ОС и рабочего окружения разный набор установленных по умолчанию пакетов, поэтому мы дадим универсальный вариант, и, если вы увидите сообщение типа:
то не следует беспокоиться, это означает, что данный пакет уже есть в вашей системе и можно переходить к следующему шагу.
Если вы используете Debian , то мы рекомендуем подключить все репозитории, для этого откройте /etc/apt/sources.list и добавьте после main в каждую строку contrib и non-free .
Затем обновим список пакетов:
Apt update
и установим:
Apt install libwebkitgtk-3.0-0
apt install ttf-mscorefonts-installer
apt install libfontconfig1
apt install libgsf-1-114
apt install libglib2.0-0
apt install libodbc1
Часть пакетов у вас уже может быть установлена, это нормально, мы специально пошли по пути избыточности, ради универсальности данного материала.
Следующий пакет должен быть установлен по умолчанию, но на всякий случай следует проверить.
Для Ubuntu 16.04 :
Apt install libmagickwand-6.q16-2
Для Debian 9 и Ubuntu 18.04 :
Apt install libmagickwand-6.q16-3
Для установки клиентской версии платформы вам потребуется скачать с сайта 1С два архива: Клиент 1С:Предприятия для DEB-based Linux-систем и Cервер 1С:Предприятия для DEB-based Linux-систем . Обратите внимание, что разрядность скачиваемых архивов должна соответствовать разрядности системы, мы не видим особой необходимости в использовании x32 (i386) систем, поэтому в дальнейшем, если это не оговорено особо, все действия будут производиться для платформы x64 (amd64).
Коротко разберем состав архивов, в поставку клиента входят пакеты:
- client - клиентские приложения (толстый клиент и тонкий клиент) «1С:Предприятия»
- thin-client - тонкий клиент «1С:Предприятия» (не поддерживается работа с файловым вариантом информационной базы)
В состав сервера:
- common - общие компоненты «1С:Предприятия»
- server - компоненты сервера «1С:Предприятия»
- ws - адаптер для публикации Web-сервисов «1С:Предприятия» на веб-сервере на основе Apache HTTP Server 2.0, 2.2 или 2.4
Также в поставке присутствуют пакеты с суффиксами -nls , они содержат языковые ресурсы, кроме русского и английского языков, поэтому если они вам не нужны, то их установка необязательна, в нашем примере мы их установим (исходя из принципа разумной избыточности, так как наш блог читают не только в России).
Создайте отдельную папку и скопируйте туда пакеты client из поставки Клиента и пакеты common и server из поставки Сервера, в итоге, с -nls , у вас должно оказаться шесть пакетов:
Теперь откроем консоль и перейдем в папку с пакетами, проще всего это сделать, щелкнув в ней правой кнопкой мыши и выбрать Открыть в терминале
:
Повысим права до суперпользователя и установим пакеты командой:
Затем находим значок 1С в меню и запускаем приложение, все должно работать.
Для завершения процесса отключим автозапуск службы сервера 1С, которая для работы клиента не нужна, это необязательно, но желательно по соображениям экономии ресурсов и безопасности, для этого выполним:
Systemctl disable srv1cv83
Как видим, ничего сложного в установке клиентской платформы 1С:Предприятие на Linux нет. Достаточно придерживаться инструкции и установить все необходимые зависимости.
Платформа 8.3.13 и ошибка с libpng12
При установке или обновлении до платформы 8.3.13, актуальный релиз на сегодня - 8.3.13.1513, вы можете столкнуться с ситуацией, когда 1С отказывается запускаться, эта ошибка проявляется в Debian 9 и Ubuntu 18.04 .
Если запустить приложении из консоли, то мы увидим ошибку:
После чего все становится на свои места. В новых дистрибутивах библиотеку libpng12 заменила libpng16 , но 1С продолжает искать старую библиотеку (причем только последний релиз 8.3.13), оставим это на совести разработчиков 1С.
Что делать? Скачать нужный пакет из репозитория Debian 8 или Ubuntu 16.04 . Непосредственно на системе это можно сделать командой (для x64 систем):
Wget http://ftp.ru.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_amd64.deb
Для 32-х битных систем аналогичная команда будет:
Wget http://ftp.ru.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_i386.deb
Затем установим пакет:
Dpkg -i libpng12-0_1.2.50-2+deb8u3_amd64.deb
или для 32-х бит:
Dpkg -i libpng12-0_1.2.50-2+deb8u3_i386.deb
После чего 1С снова начнет запускаться.
Активация программной лицензии
Основным типом защиты современных конфигураций 1С является программная лицензия, поэтому в данной статье мы не будем касаться HASP-ключей. Как показали отзывы, у многих возникают затруднения в активации программной лицензии на платформе Linux, поэтому коротко коснемся одной особенности.
Если запустить информационную базу в режиме 1С:Предприятия, то получим сообщение о том, что не найдена лицензия, при этом программа даже не предложит ввести лицензию.
Так же во время установки, надо не забыть отметить чекбокс напротив устанавливать 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.168.1.4 192.168.1.6
где, 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_RU.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 вручную. Для того что бы изменения вступили в силу, набираем:
Alter user postgres with password "YOUR_PASSWORD";
Набираем \q что бы выйти из консоли.
Файл /var/lib/pgsql/data/pg_hba.conf приводим к виду:
#IPv4 local connections: 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_fsm_relations * 2000; 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 для быстрых cpu, 4 для медленных cpu_tuple_cost = 0.001 для быстрых 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:1541 0.0.0.0:* LISTEN 2802/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 detect SYSTEM_LIB_PATH, please set this environment variable manually!/libWand.so Can"t detect SYSTEM_LIB_PATH, please set this environment variable manually!/libfreetype.so Can"t detect SYSTEM_LIB_PATH, please set this environment variable manually!/libgsf-1.so Can"t detect 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: Could not reliably determine the server"s fully qualified domain name, using 127.0.0.1 for 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/"
В /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
Целью этой работы является обобщение методов установки и настройки 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_RU
(создаем локаль русского языка)
sudo update-locale LANG=ru_RU.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 <
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 завершаем.
В этой статье я попробую рассказать об установке сервера 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 нужно добавить строки:
В качестве разделителей должны быть пробелы, а не табуляции.
Дополнительные настройки
Все приведенные ниже действия не являются обязательными.
Установка 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.