1с сервер на linux команды.

Связка сервера 1С:Предприятие и PostgreSQL вторая по популярности среди установок 1С и самое используемое решение на платформе Linux. В отличии внедрений на базе Windows и MSSQL, где трудно сделать так, чтобы не заработало, внедрения на базе Linux таят множество подводных камней для неопытного администратора. Часто бывает так, что вроде бы все сделано правильно, но ошибка следует за ошибкой. Сегодня мы рассмотрим самые типовые из них.

Общая информация

Перед тем, как начинать искать ошибки установки и, вообще, приступать к внедрению серверной версии 1С:Предприятия было бы неплохо освежить представление как это работает:

Сервер 1С Предприятия. Часть 1 - Общие вопросы.

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

В нашем распоряжении имеются два сервера под управлением Ubuntu 12.04 x64, на одном из них установлен сервер 1С:Предприятие версии 8.3, на другом PostgreSQL 9.04 от Ethersoft, а также клиент под управлением Windows. Напоминаем, что клиент работает только с сервером 1С, который, в свою очередь, формирует необходимые запросы к серверу СУДБ. Никаких запросов от клиента к серверу управления базами данных не происходит.

Сервер баз данных не обнаруженВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Ident)

Данная ошибка возникает при разнесении серверов по разным ПК из-за неправильно настроеной проверки подлинности в локальной сети. Для устранения откройте /var/lib/pgsql/data/pg_hba.conf, найдите строку:

Host all all 192.168.31.0/24 ident

и приведите ее к виду:

Host all all 192.168.31.0/24 md5

где 192.168.31.0/24 - диапазон вашей локальной сети. Если такой строки нет, ее следует создать в секции IPv4 local connections.

Сервер баз данных не обнаруженcould not translate host name "NAME" to address: Temporary failure in name resolution

На первый взгляд ошибка понятна: клиент не может разрешить имя сервера СУБД, типичная ошибка для небольших сетей, где отсутствует локальный DNS-сервер. В качестве решения добавляют запись в файлhosts на клиенте, что не дает никакого результата...

А теперь вспоминаем, о чем было сказано несколько раньше. Клиентом сервера СУБД является сервер 1С, но никак не клиентский ПК, следовательно запись нужно добавлять на сервере 1С:Предприятие в файл/etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows.

Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.

Ошибка при выполнении операции с информационной базойserver_addr=NAME descr=11001(0x00002AF9): Этот хост неизвестен.

Как и прошлая, эта ошибка связана с неправильным разрешением клиентом имени сервера. На этот раз именно клиентским ПК. В качестве решения добавляем в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows запись вида:

192.168.31.83SRV-1C-1204

где указываете адрес и имя вашего сервера 1С:Предприятия. В случае использования локального DNS следует добавить A-запись для сервера 1С.

Ошибка СУБД: DATABASE не пригоден для использования

Гораздо более серьезная ошибка, которая говорит о том, что вы установили несовместимую с 1С:Предприятие версию PostgreSQL или допустили грубые ошибки при установке, например не установили все необходимые зависимости, в частности библиотеку libICU.

Если вы имеете достаточный опыт администрирования Linux систем, то можете попробовать доустановить необходимые библиотеки и заново инициализировать кластер СУБД. В противном случае PostgreSQL лучше переустановить, не забыв удалить содержимое папки /var/lib/pgsql.

Также данная ошибка может возникать при использовании сборок 9.1.x и 9.2.x Postgre@Etersoft, подробности смотрите ниже.

Ошибка СУБД: ERROR: could not load library "/usr/lib/x86_64-linux-gnu/postgresql/fasttrun.so"

Довольно специфичная ошибка, характерная для сборок 9.1.x и 9.2.x Postgre@Etersoft, также может приводить предыдущей ошибке. Причина кроется в неисправленной ошибке в библиотеке fasttrun.so. Решение - откатиться на сборку 9.0.x Postgre@Etersoft.

Ошибка СУБДERROR: type "mvarchar" does not exist at character 31

Возникает если база данных была создана без помощи системы 1С:Предприятия. Помните, для работы с 1С базы данных следует создавать только с использованием инструментов платформы 1С: через консоль Администрирование серверов 1С Предприятия

или через средство запуска 1С.

Сервер баз данных не обнаруженВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)

Очень простая ошибка. Неправильно указан пароль суперпользователя СУБД postgres. Вариантов решения два: вспомнить пароль или изменить его. Во втором случае вам нужно будет изменить пароль в свойствах всех существующих информационных баз через оснастку Администрирование серверов 1С Предприятия.

Сервер баз данных не обнаруженFATAL: database "NAME" does not exist

Еще одна очень простая ошибка. Смысл ее сводится к тому, что указанная БД не существует. Чаще всего возникает из-за ошибки в указании имени базы. Следует помнить, что информационная база 1С в кластере и база данных СУБД - две разные сущности и могут иметь различные имена. Также следует помнить, что Linux системы чувствительны к регистру и для них unf83 и UNF83 два разных имени.

Так же во время установки, надо не забыть отметить чекбокс напротив устанавливать 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/" 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С для RPM-based Linux-систем.

Используемые версии дистрибутивов, актуальные на момент написания статьи:

  • Операционная система: CentOS Linux release 7.2.1511
  • СУБД: PostgreSQL Pro 9.4.9
  • Сервер 1С:Предприятия: 8.3.9.1818

Дистрибутивы СУБД PostgreSQL Pro устанавливаются из установочных пакетов, собранных компанией Postgres Professional . В эти установочные пакеты включены изменения, предоставленные компанией 1С.

Настройка hostname и DNS

Hostname в Centos меняется следующей командой:

hostnamectl set-hostname pgsql_1c

Для нормальной работы сервера 1С необходим правильно настроенный DNS сервер, но его настройка выходит за рамки данной статьи. Поэтому для сохранения функциональности сервера мы будем использовать файлы hosts на используемых системах.

На Centos необходимо прописать адрес сервера в файле /etc/hosts :

127.0.0.1 pgsql_1c

Также необходимо прописать на машине, на которой будут установлены платформа и консоль управления сервером 1С в файле hosts (для Windows это C:\Windows\System32\Drivers\etc\hosts ) адрес сервера 1С:Предприятие.
Например:

192.168.1.5 pgsql_1c


Установка и настройка PostgreSQL

1) Для установки дистрибутивов PostgreSQL Pro необходимо подключить репозитории.

sudo rpm -ivh http://1c.postgrespro.ru/keys/postgrespro-1c-centos94.noarch.rpm sudo yum install postgresql-pro-1c-9.4

3) После установки дистрибутива для удобства администрирования сервера PostgreSQL рекомендуется прописать необходимые переменные окружения для пользователя postgres . Этот шаг необязателен.

Переключимся на пользователя postgres с его окружением:

su - postgres

Открываем файл, в котором зададим необходимые переменные окружения:

vim .bash_profile

Добавляем в этот файл переменные:

export PATH=/usr/pgsql-9.4/bin:$PATH export MANPATH=/usr/pgsql-9.4/share/man:$MANPATH

4) Инициализируем служебные базы данных с русской локализацией (под пользователем postgres ).

initdb --locale=ru_RU.UTF-8

5) Запуск сервера PostgreSQL.

systemctl enable postgresql-9.4 systemctl start postgresql-9.4 systemctl status postgresql-9.4

6) Изменение настроек сервера PostgreSQL
В файле /var/lib/pgsql/9.4/data/pg_hba.conf изменим строку

Host all all 0.0.0.0/0 trusted на host all all 0.0.0.0/0 md5

shared_buffers = 512MB temp_buffers = 16MB work_mem = 128MB maintenance_work_mem = 192MB effective_cache_size = 8GB

Внимание! Подбор данных настроек производится индивидуально и зависит как от характеристик сервера, на котором будет работать сервер PostgreSQL, так и от характеристик информационных баз, которые будут обрабатываться на этом сервере.

7) Задаем пароль пользователю postgres, для того чтобы была возможность подключаться к серверу удаленно.

su – postgres psql ALTER USER postgres WITH ENCRYPTED PASSWORD "yourpassword";

(вместо yourpassword поставьте нужный пароль)

8) Рестарт сервера PostgreSQL

systemctl stop postgresql-9.4 systemctl start postgresql-9.4 systemctl status postgresql-9.4


Установка сервера 1С:Предприятие

1) Установка сервера 1С:Предприятие из пакетов.
Как оговаривалось в начале статьи, предполагается что у нас уже есть дистрибутив сервера 1С для RPM-based Linux-систем. Он из себя представляет архив с именем rpm64.tar.gz . После разархивирования мы получим список файлов:

1C_Enterprise83-common-8.3.9-1818.x86_64.rpm 1C_Enterprise83-server-8.3.9-1818.x86_64.rpm 1C_Enterprise83-ws-8.3.9-1818.x86_64.rpm 1C_Enterprise83-common-nls-8.3.9-1818.x86_64.rpm 1C_Enterprise83-server-nls-8.3.9-1818.x86_64.rpm 1C_Enterprise83-ws-nls-8.3.9-1818.x86_64.rpm

Находясь в каталоге с этими файлами, мы их устанавливаем командой:

yum localinstall *.rpm

2) Запуск сервера 1С.

systemctl enable srv1cv83 systemctl start srv1cv83 systemctl status srv1cv83

Высока вероятность, что сервер не запустится с первого раза, и при попытке запуска Вы получите ошибку вида:

Failed at step EXEC spawning /etc/rc.d/init.d/srv1cv83: Exec format error

Чтобы устранить эту ошибку, необходимо в скрипте инициализации сервера указать интерпретатор (например shell или bash ), для этого необходимо добавить в начало файла /etc/init.d/srv1cv83 строку:

#!/bin/bash

Затем надо перезагрузить systemd для поиска новых или измененных юнитов:

systemctl daemon-reload

И снова попытаться запустить сервер 1С:Предприятие

systemctl restart srv1cv83.service

3) Установка необходимых пакетов для корректной работы сервера 1С.
В документации сервера 1С:Предприятия описана утилита config_system , которая необходима для анализа готовности системы к запуску сервера 1С, в частности она помогает обнаружить отсутствующие необходимые пакеты для корректной работы сервера 1С. К сожалению, анализ rmp пакетов (rmp -ql ) показал отсутствие данной утилиты в составе дистрибутива сервера 1С версии 8.3.9.1818.

Необходимость данных пакетов выяснилась опытным путем:

yum install fontconfig-devel yum install ImageMagick

4) Рестарт сервера 1С.

systemctl stop srv1cv83 systemctl start srv1cv83 systemctl status srv1cv83


Настройка сервера 1С посредством консоли администрирования.

1) Подключение к серверу 1С.
Необходимо указать имя сервера (прописанное в hosts ) и порт 1540 (используется по умолчанию):

2) Создание кластера.
Необходимо указать:
- произвольное имя кластера,
- имя центрального сервера, на котором располагается кластер (прописанный в hosts )
- порт 1541 (используется по умолчанию)

3) Создание базы на кластере сервера 1С.
Необходимо указать:
- имя базы на кластере 1С;
- имя сервера баз данных (прописанное в hosts);
- тип СУБД (PostgeSQL);
- имя базы данных на сервере СУБД;
- пользователь сервера СУБД (в нашем случае postgres);
- пароль указанного пользователя сервера СУБД.

При необходимости можно отметить пункт «Создать базу с случае ее отсутствия»

Установка 1С на Ubuntu Linux не требует специальных знаний операционной системы или опыта программирования. Достаточно внимательно ознакомиться с данной инструкцией и следовать всем рекомендациям по вводу команд и работе с терминалом, описанным ниже. Перед тем как начать саму установку клиента и сервера 1С под Ubuntu Linux, необходимо скачать дополнительные DEB пакеты (библиотеку и защиту hasp от Etersoft). Если у вас нет локальной сети, то необходимо ее настроить.

Локальная сеть

Откройте главное меню, найдите и запустите системную утилиту «сетевые соединения».

Для дальнейшей конфигурации перейдите на «проводное соединение» - «изменить» - «Параметры IPv4».

Измените способ настройки на «вручную», пропишите IP адрес. Для примера укажем: 192.168.128.40. Данные маски сети по умолчанию: 255.255.255.0.

Для доступа к интернету укажите DNS сервера. Вы можете использовать данные по умолчанию или ввести следующий рабочий адрес DNS - 8.8.8.8.

После этого можно приступить к загрузке дистрибутивов.

Запустите интернет браузер и перейдите на сайт поддержки пользователей 1С - «www.users.v8.1c.ru». С него мы будем скачивать сами дистрибутивы клиента и сервера 1С для Ubuntu Linux.

Нажмите - «скачать обновления», введите данные своей учетной записи (логин, пароль).

После этого, найдите «технологическая платформа 8.3» и выберите самую последнюю версию.

Здесь выберите «клиент 1С предприятия для DEB Linux систем». Помимо самого клиента, необходимо скачать «сервер 1С для Deb Linux систем». Без него вы не сможете установить сам клиент 1C для Ubuntu Linux.

Дополнительные DEB пакеты

Для полноценной работы программы мало скачать и установить сервер и клиент 1С. Все файлы необходимо загружать в одну папку «загрузки». Чтобы не путаться, удалит оттуда все лишнее. Затем, для более комфортной установки, мы переместим все скачанные дистрибутивы.

Необходимо загрузить дополнительные файлы: etersoft (терминальный сервер 1С под Linux или hasp) и бесплатную библиотеку libwebkitgtk. Для установки библиотеки перейдите по ссылке ниже, а затем найдите последнюю версию дистрибутива.

Для устройств на базе 32-разрядного процессора необходимо скачивать DEB пакет i386, для 64-разрядного - amd64.

Следующее, что понадобится - терминальный сервер 1C для Ubuntu (HASP защита). Скачать его дистрибутив можно с официального сайта Etersoft по ссылке ниже. В нашем случае это DEB пакеты для Ubuntu 12.04. Если вы пользуетесь другой версией Linux или Ubuntu, вернитесь в каталог и выберите необходимую вам.

Загрузить нужно все DEB пакеты hasp. Другие файлы не нужны.

Подготовка к установке

Дальнейшую установку клиента и сервера на Ubuntu продолжим при помощи терминала Linux. Чтобы не вводить длинные названия файлов и директорий вручную, рекомендуем скопировать их и вставить по инструкции ниже.

Если вам уже приходилось работать с Linux Ubuntu и устанавливать через терминал DEB файлы, то данный этап можно пропустить и приступить к следующему.

  • В домашней папке создайте новую - 1С;

  • откройте только что созданную директорию, создайте здесь еще две: hasp, server;

  • все DEB файлы hasp переместите в созданную папку «hasp» по адресу «домашняя папка» «1С» - «hasp»;
  • вернитесь в папку «загрузки», и распакуйте дистрибутив клиента;
  • в итоге у вас должна появиться папка с распакованными в ней файлами клиента 1С для Ubuntu;
  • переместите из нее все файлы, в директорию «доимашняя папка» - «1С»;

  • откройте папку «загрузки», распакуйте из архива дистрибутив сервера;
  • скопируйте все файлы в папку «server»;

  • оставшийся дистрибутив - в папку «1С».

После этого можно приступать к установке клиента и сервера 1С на Ubuntu Linux. Мы будем делать это при помощи терминала, т.к. в этом случае появляется возможность проследить за всеми ошибками, которые могут возникнуть в процессе. Например, из-за отсутствующих библиотек или дистрибутивов в системе.

Внимание! Перед тем как установить клиент 1С под Ubuntu Linux, проверьте, что его версия совпадает с версией сервера 1С.

Работа с терминалом

Запустите главное меню и откройте терминал. Здесь мы будем вводить все рабочие команды.

Если вы не пользовались операционной системой Linux, то рекомендуем выполнять установку DEB пакетов и ввод команд строго в той последовательности, в которой они ниже. Так вы сможете заметить и устранить все возможные ошибки терминала, скачать отсутствующие библиотеки.

Введите команду «cd 1c» для перехода по каталогу, а затем нажмите «enter» и впишите команду «sudo dpkg -i», скопируйте название первого DEB файла из каталога 1С и вставьте его в терминал нажатием правой кнопкой мыши или сочетанием клавиш «shift+ctrl+V».

Нажмите «Enter». Для выполнения команды, терминал запросит пароль администратора, введите его.

После этого должен выпасть список сообщений об ошибке, в которых будет указана их причина - зависимость. Например, что DEB пакет 1С зависит от библиотеки libwebkit (которую мы уже скачали). Или отсутствие 1С сервера.

Внимание! Если в списке ошибок нет зависимости от библиотеки, то устанавливать ее второй раз не нужно.

Установка библиотеки

Для установки библиотеки, введите команду «sudo dpkg -i», а затем скопируйте и вставьте название DEB пакета libwebkitgtk. Нажмите Enter.

Если в процессе возникнет какая-то ошибка, запустите центр приложений Ubuntu, а на любые запросы системы - нажмите «да». Введите пароль администратора.

Вернитесь в терминал, введите команду «sudo dpkg -i» для установки DEB пакета. Чтобы второй раз не вводить длинную команду и не копировать название файла, Linux запоминает введенные команды. И их можно перебирать нажатие клавиши «вверх» (стрелочки) на клавиатуре.

Настройка сервера

Для установки сервера 1С на Ubuntu Linux, в самом терминале необходимо перейти в каталог «1С» - «server».

Поэтому, введите следующую команду в терминале: «cd server», а затем загрузите все, что есть в директории. Чтобы не пришлось вводить все «вручную», пропишите «sudo dpkg -i *.deb». После этого загрузятся все DEB пакеты из каталога «server».

Установка клиента 1С для Linux

Чтобы вернуться на уровень из каталога «1С» - «server» в корень, введите: «cd/home/1c/server», а затем «cd ../» и нажмите «enter».

После этого при помощи команды «sudo dpkg -i» установите клиент 1С. Для этого не забудьте скопировать и вставить название DEB пакета и нажмите Enter. Если в процессе не возникло ошибок, то все было сделано правильно.

Установите оставшиеся дистрибутивы из каталога 1С (для быстрой работы используйте кнопку «вверх» на клавиатуре, а затем просто изменяйте название дистрибутивов).

HASP

Так как сейчас мы находимся по адресу «/home/1c/», то для установки защиты hasp достаточно ввести следующую команду: «cd hasp» (чтобы перейти в каталог hasp из директории 1С), а затем «sudo dpkg -i *.deb» (чтобы установить все пакеты из каталога «hasp»).

После этого можно воткнуть в сервер ключ защиты HASP и ввести несколько дополнительных команд, для разрешения зависимостей. На вопрос терминала «продолжить установку», вводите «д» (да) или «y» (yes).

Список команд для установки hasp под Ubuntu Linux:

  1. «sudo apt-get install imagemagick»;
  2. «sudo apt-get install unixodbc»;
  3. «sudo apt-get install libgsf-bin»;
  4. «sudo apt-get install t1utils».

Чтобы запустить 1С, перейдите в главное меню, затем введите название программы. Перед вами появится несколько видов клиента. То есть все, что необходимо для работы с программой. Чтобы вам не пришлось постоянно искать клиент для запуска в меню, скопируйте «1С: Enterprise» на рабочий стол Ubuntu. После этого запустите приложение, создайте базу данных и начинайте работу с системой и конфигурациями.

Версия 1С для Linux вышла уже достаточно давно и поэтому уже давно пора рассказать об установке 1С в Linux. Я расскажу об установке 1С на Ubuntu (deb-based) и Fedora (rpm-based).

Итак, приступим.

Все начинается со скачивания всех необходимых дистрибутивов, скачать их можно по адресу users.v8.1c.ru . Нам потребуется «Клиент для 1С: Предприятия для Linux-систем» и «Сервер 1С: Предприятия для Linux-систем». В зависимости от операционной системы выбираем DEB или RPM, также выбираем 32-х или 64-х битный вариант.

Распаковав архивы мы получим приблизительно такой список файлов:

  • sudo dpkg -i <название пакета> — в Ubuntu;
  • yum -y <название пакета> — в Fedora.

Устанавливать пакеты нужно в следующем порядке:

  1. 1c-enterprise83-common;
  2. 1c-enterprise83-common-nls;
  3. 1c-enterprise83-server;
  4. 1c-enterprise83-server-nls;
  5. 1c-enterprise83-ws;
  6. 1c-enterprise83-ws-nls;
  7. 1c-enterprise83-crs;
  8. 1c-enterprise83-client;
  9. 1c-enterprise83-client-nls.

С установкой на Fedora никаких проблем не возникло, а вот Ubuntu потребовал libwebkitgtk-1.0-0, проблема была решена так:

apt-get install libwebkitgtk-1.0-0

apt-get -f install

Если есть необходимость, можно установить HASP, скачать дистрибутив можно . Устанавливать нужно в следующем порядке:

  1. haspd;
  2. haspd-modules;
  3. dkms-aksparlnx.

После установки каталог 1С будет находиться по адресу /opt/1C/.

А результат будет выглядеть примерно так:



При запуске 1С поругается на отсутствие шрифтов и предупредит, что внешний вид может отличаться от ожидаемого.

Кроме всего прочего можно провести некоторую дополнительную настройку (в том числе и шрифтов).

Для начала нужно установить следующие пакеты:

  1. imagemagick;
  2. unixodbc;
  3. libgsf-bin;
  4. t1utils.

А после этого выполнить вот такую команду:

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

После этого можно добавлять базу и работать.

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



В продолжение темы:
Android

Популярная социальная сеть ВКонтакте позволяет находить новых друзей и держать контакт со всеми близкими. Помимо этого, каждый пользователь может делиться собственными...