Fedora 15. Сервер 1С: Предприятие 8.2 с публикацией web.

Для разработки и экспериментов и демо-презентаций конфигураций через web необходимо установить кластер серверов «1С:Предприятия» с минимальными вложениями на лицензирование. В наличии: клиентский ключ на 10 пользователей, сервер на Fedora 15 x86_64, домен имя.домена зоны которого настроены на сервер. Настроить кластер серверов «1С:Предприятие» для работы по локальной сети и настроить публикацию 1С через web вида http://1c.имя.домена/база_01, http://1c.имя.домена/база_02, http://1c.имя.домена/база_03, ..., http://1c.имя.домена/база_nn.

Для пользователей/администраторов не желающих разбираться в организации SELinux желательно его отключить во избежании поиска проблем с доступом к серверу.

Отключение SELinux.

Открываем любимым редактором файл /etc/selinux/config и изменяем параметр SELINUX на SELINUX=disabled:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted

Перезагружаем компьютер...

Требования к аппаратуре и программному обеспечению

Текущий список поддерживаемых дистрибутивов серверных операционных систем и систем управления базами данных опубликован на сайте http://www.v8.1c.ru/requirements/.

32-разрядный сервер

Требования к рабочим серверам, входящим в состав кластера серверов «1С:Предприятия»:

  • процессор не ниже Pentium/Xeon 2,4 ГГц. Желательно использование многопроцессорных или многоядерных машин, так как наличие нескольких процессоров/ядер благотворно сказывается на пропускной способности кластера серверов «1С:Предприятия», особенно в случае интенсивной работы нескольких пользователей;
  • оперативная память не менее 512 Мбайт (рекомендуется 1024 Мбайт и выше). И хотя рабочие процессы кластера серверов «1С:Предприятие» могут исполняться в достаточно небольших объемах памяти, при пиковых нагрузках их потребности могут быть весьма значительными;
  • требуется наличие USB-порта для подключения ключа аппаратной защиты кластера серверов «1С:Предприятие».

64-разрядный сервер

Требования к рабочим серверам, входящим в состав кластера серверов «1С:Предприятия»:

  • процессор с архитектурой x86-64 (Intel с поддержкой Intel 64, AMD с поддержкой AMD64). Желательно использование многопроцессорных или многоядерных машин, так как наличие нескольких процессоров/ядер благотворно сказывается на пропускной способности кластера серверов «1С:Предприятия», особенно в случае интенсивной работы нескольких пользователей;
  • оперативная память 1024 Мбайт и выше. И хотя рабочие процессы кластера серверов «1С:Предприятие» могут исполняться в достаточно небольших объемах памяти, в пиковых ситуациях их потребности могут быть весьма значительными;
  • требуется наличие USB-порта для подключения ключа аппаратной защиты кластера серверов «1С:Предприятия»;
  • устройство чтения компакт-дисков.

ВНИМАНИЕ! Невозможно создание или подключение к файловой информационной базе при работе 64-разрядной версии «1С:Предприятия» на 64-разрядной ОС Linux. Например, будет невозможно создание начального образа периферийной информационной базы (в файловом варианте), а также подключение к файловой информационной базе с помощью 64-разрядного веб-сервера.

В случае если кластер серверов «1С:Предприятие» и сервер баз данных установлены на разных компьютерах, на производительность системы может существенно влиять пропускная способность сетевого соединения между компьютерами кластера серверов «1С:Предприятия» и компьютером сервера баз данных. Рекомендуется использовать сетевые карты с пропускной способностью 100 Мбит и выше.

Для работы сервера «1С:Предприятия» под управлением ОС Linux необходимо наличие установленных библиотек:

  • ImageMagick:
    • версии 6.2.8 и выше, если не планируется работать с географической схемой.
    • версии 6.3.2 и выше, если планируется работать с географической схемой.
  • freetype 2.1.9 и выше,
  • libgsf 1.10.1 и выше,
  • msttcorefonts.

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

  • для работы управляемого приложения;
  • при использовании на сервере объектов Диаграмма, ГрафическаяСхема, ТабличныйДокумент;
  • при использовании метода ПолучитьКартинку() объектов Диаграмма, ДиаграммаГанта, Дендрограмма, СводнаяДиаграмма;
  • для экспорта табличного документа в формат XLS на стороне сервера.

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

Дистрибутив серверной части «1С:Предприятия» для Linux представлен в виде нескольких rpm-пакетов. В общем случае имена файлов rpm-пакетов имеют вид:

  • 1C_Enterprise82-common-8.2.<X>-<Y>.<V>.rpm,
  • 1C_Enterprise82-common-nls-8.2.<X>-<Y>.<V>.rpm,
  • 1C_Enterprise82-server-8.2.<X>-<Y>.<V>.rpm,
  • 1C_Enterprise82-server-nls-8.2.<X>-<Y>.<V>.rpm,
  • 1C_Enterprise82-ws-8.2.<X>-<Y>.<V>.rpm,
  • 1C_Enterprise82-ws-nls-8.2.<X>-<Y>.<V>.rpm,
  • 1C_Enterprise82-crs-8.2.<X>-<Y>.<V>.rpm,
  • 1C_Enterprise82-crs-nls-8.2.<X>-<Y>.<V>.rpm.

Где <X> и <Y> - соответствующие позиции в версии «1С:Предприятия», <V> - разрядность системы. Например, для «1С:Предприятия» версии 8.2.13.205 64-разрядной системы, упомянутые файлы будут иметь следующие имена:

  • 1C_Enterprise82-common-8.2.13-205.x86_64.rpm,
  • 1C_Enterprise82-common-nls-8.2.13-205.x86_64.rpm,
  • 1C_Enterprise82-server-8.2.13-205.x86_64.rpm,
  • 1C_Enterprise82-server-nls-8.2.13-205.x86_64.rpm,
  • 1C_Enterprise82-ws-8.2.13-205.x86_64.rpm,
  • 1C_Enterprise82-ws-nls-8.2.13-205.x86_64.rpm,
  • 1C_Enterprise82-crs-8.2.13-205.x86_64.rpm,
  • 1C_Enterprise82-crs-nls-8.2.13-205.x86_64.rpm.

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

  • 1C_Enterprise82-common - общие компоненты «1С:Предприятия»;
  • 1C_Enterprise82-server - компоненты сервера «1С:Предприятия»;
  • 1C_Enterprise82-ws - адаптер для публикации Web-сервисов «1С:Предприятия» на веб-сервере на основе Apache HTTP Server 2.0 или Apache HTTP Server 2.2;
  • 1C_Enterprise82-crs - компоненты сервера хранилища конфигурации «1С:Предприятия».

Пакеты, содержащие в названии суффикс «-nls», - это дополнительные национальные ресурсы для соответствующего пакета. Например, пакет 1C_Enterprise82-server-nls содержит дополнительные национальные ресурсы для компонентов сервера «1С:Предприятия».

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

  • 1C_Enterprise82-common не имеет зависимостей;
  • 1C_Enterprise82-server зависит от 1C_Enterprise82-common;
  • 1C_Enterprise82-ws зависит от 1C_Enterprise82-common;
  • 1C_Enterprise82-crs зависит от 1C_Enterprise82-common, 1C_Enterprise82-server и 1C_Enterprise82-ws;
  • пакеты национальных ресурсов зависят от соответствующего компонента.

Поэтому для того, чтобы успешно установить пакет, предварительно нужно установить все пакеты, от которых он зависит. Например, для установки компонентов сервера «1С:Предприятия» необходимо сначала установить пакет 1C_Enterprise82-common и после этого - 1C_Enterprise82-server.

Ставим требуемые пакеты для работы сервера:

# yum install ImageMagick libgsf
...
Продолжить? [y/N]: y
...
Готово!

Любым наиболее доступным способом добываем установочные пакеты сервера 1С:Предприятие требуемой версии, например скачать версию 8.2.13.205 с сайта http://users.v8.1c.ru/ не возможно, т.к. текущий релиз 8.2.13.219 на момент написания статьи. Быстрее оказалось скачать с торрентов нежели искать на каком из сотни дисков ИТС присутствует требуемая версия. Итак получили требуемые пакеты и поместили в удобную для себя директорию, например /tmp/1c

# cd /tmp/1c
# ls
1C_Enterprise82-common-8.2.13-205.x86_64.rpm
1C_Enterprise82-server-8.2.13-205.x86_64.rpm
1C_Enterprise82-ws-8.2.13-205.x86_64.rpm
1C_Enterprise82-common-nls-8.2.13-205.x86_64.rpm
1C_Enterprise82-server-nls-8.2.13-205.x86_64.rpm
1C_Enterprise82-ws-nls-8.2.13-205.x86_64.rpm

Устанавливаем скопом все пакеты. После установки будет созданы пользователь usr1cv82 и группа grp1cv82, а так же автоматически запущен сервер 1С:Предприятие под данным пользователем:

# yum install *.rpm
Starting 1C:Enterprise 8.2 server: OK
# rm -rf /tmp/1c

Настройка сервера 1С: Предприятие 8.2

После установки сервера нужно запустить утилиту /opt/1C/v8.2/x86_64/utils/config_server (или /opt/1C/v8.2/i386/config_server для 32-разрядной версии сервера), которая выполняет следующие действия:

  • проверяет наличие всех необходимых библиотек для работы сервера;
  • регистрирует установленные TrueType шрифты в ImageMagick. Если установленные шрифты найти не удалось, скрипт потребует явно указать каталог, в котором находятся ttf-файлы.

Внимание! Запуск утилиты config_server следует выполнять от лица администратора системы.

По умолчанию сервер устанавливается по следующему пути /opt/1C/v8.2/x86_64/ для 64-bit системы и /opt/1C/v8.2/i386/ для 32-bit соответственно. Настройка сводится к запуску скрипта /opt/1C/v8.2/x86_64/utils/config_server. При наличии ошибок при выполнении скрипта, он подсказывает способы их решения. Фактически при использовании сервера для доступа к нему толстого и тонкого клиентов, то данный пункт можно пропустить, т.к. скрипт производит настройку для режима web-доступа. Не произведя настройку при подключении по web можно получить ошибку "Ошибка инициализации графической системы". Приступим к настройке.

Останавливаем сервер 1С:Предприятие:

# service srv1cv82 stop
Stopping 1C:Enterprise 8.2 server: OK

Запускаем утилиту настройки:

# /opt/1C/v8.2/x86_64/utils/config_server 
Can not detect font directory, please specify it!

Скрипт говорит об отсутствии директории со шрифтами TrueType от Microsoft. Такого пакета в fedora нет, поэтому нужно его собрать и установить ссылка.

Сразу установим пакет ttf2pt1 который потребуется для преобразования шрифтов:

# yum install ttf2pt1

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

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

Настройка прошла без ошибок. Запускаем сервер.

Запуск компонентов системы

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

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

Если список кластеров не обнаружен, агент сервера создает кластер по умолчанию. Кластер по умолчанию имеет следующие характеристики:

  • номер сетевого порта - 1541;
  • диапазон сетевых портов - 1560:1591;
  • поддержка многих рабочих процессов выключена;
  • один рабочий процесс, номер порта устанавливается из указанного диапазона.

Запуск агента сервера

Для запуска агента сервера используются следующие ключи командной строки:

ragent -port <порт> -regport <порт> -range <диапазоны> -seclev <уровень>

ВНИМАНИЕ! Название и значение параметра должны разделяться символом пробел.

port <порт>

Номер сетевого порта агента сервера (ragent). Этот порт используется консолью кластера для обращения к центральному серверу. Порт агента кластера также указывается в качестве сетевого порта рабочего сервера. Значение по умолчанию: 1540.

regport <порт>

Номер сетевого порта главного менеджера кластера (rmngr), создаваемого по умолчанию при первом запуске ragent. Значение по умолчанию: 1541.

range <диапазоны>

Диапазоны сетевых портов для динамического выбора. Из них выбираются служебные порты процессов кластера при невозможности их выбора из настроек соответствующего рабочего сервера. Значение по умолчанию: 1560:1591. Примеры значений диапазонов: «45:49», «45:67,70:72,77:90».

seclevel <уровень>

Необязательный. Уровень безопасности процесса агента кластера. Определяет уровень безопасности соединений, устанавливаемых с процессом ragent. Уровень может принимать значения:

  • 0 (по умолчанию) - соединения незащищенные;
  • 1 - защищенные соединения только на время выполнения аутентификации пользователей;
  • 2 - постоянно защищенные соединения.

Запуск агента сервера в режиме демона

Для запуска агента сервера в режиме демона используются следующие ключи командной строки:

ragent -daemon -port <порт> -regport <порт> -range <диапазоны> -seclev <уровень>

ВНИМАНИЕ! Название и значение параметра должны разделяться символом пробел.

port <порт>

Номер сетевого порта агента сервера (ragent). Этот порт используется консолью кластера для обращения к центральному серверу. Порт агента кластера также указывается в качестве сетевого порта рабочего сервера. Значение по умолчанию: 1540.

regport <порт>

Номер сетевого порта главного менеджера кластера (rmngr), создаваемого по умолчанию при первом запуске ragent. Значение по умолчанию: 1541.

range <диапазоны>

Диапазоны сетевых портов для динамического выбора. Из них выбираются служебные порты процессов кластера при невозможности их выбора из настроек соответствующего рабочего сервера. Значение по умолчанию: 1560:1591. Примеры значений диапазонов: «45:49», «45:67,70:72,77:90».

seclevel <уровень>

Необязательный. Уровень безопасности процесса агента кластера. Определяет уровень безопасности соединений, устанавливаемых с процессом ragent. Уровень может принимать значения:

  • 0 (по умолчанию) - соединения незащищенные;
  • 1 - защищенные соединения только на время выполнения аутентификации пользователей;
  • 2 - постоянно защищенные соединения.

Для того чтобы сервер «1С:Предприятия» автоматически запускался во время загрузки операционной системы, следует выполнить команду вида:

chkconfig -add srv1cv82

Этот код запустит ragent в режиме демона.

Запуск агента сервера при помощи скрипта init.d

Для управления агентом сервера «1С:Предприятия» предназначен специализированный скрипт /etc/init.d/srv1cv82. Скрипт всегда запускает сервер в режиме демона. Скрипт использует следующие ключи командной строки:

-start

Запускает сервер. Скрипт позволяет запустить единственный экземпляр сервера «1С:Предприятие».

-stop

Останавливает сервер. При этом останавливается только тот сервер, который ранее был запущен этим скриптом (см. команду start).

-info

Отображает информацию о настройках сервера: порты, указанные при запуске, каталог кластера, статус режима отладки конфигурации, уровень безопасности соединений.

-status

Отображает информацию о состоянии сервера (запущен/не запущен, и если запущен, то работает ли в данный момент).

Помимо этого добавлен конфигурационный файл /etc/sysconfig/srv1cv82 и файл /etc/init.d/srv1cv82 используемый для задания параметров запуска агента сервера «1С:Предприятие».

Проверяем состояние сервера:

# netstat -lnp | grep ragent
tcp        0      0 0.0.0.0:1540                0.0.0.0:*                   LISTEN      7051/ragent         
tcp        0      0 0.0.0.0:1561                0.0.0.0:*                   LISTEN      7051/ragent
# netstat -lnp | grep rmngr
tcp        0      0 0.0.0.0:1541                0.0.0.0:*                   LISTEN      7054/rmngr          
tcp        0      0 0.0.0.0:1560                0.0.0.0:*                   LISTEN      7054/rmngr          
udp        0      0 0.0.0.0:45901               0.0.0.0:*                               7054/rmngr          
# netstat -lnp | grep rphost
tcp        0      0 0.0.0.0:1564                0.0.0.0:*                   LISTEN      7066/rphost         
tcp        0      0 0.0.0.0:1562                0.0.0.0:*                   LISTEN      7066/rphost         
udp        0      0 0.0.0.0:36891               0.0.0.0:*                               7066/rphost

Все ОК. Процессы сервера прослушивают стандартные порты.

Лицензии.

Из постановки задачи мне не требовалось настраивать ключ на серверной машине, ибо в сети присутствует win с сетевым пользовательским ключом и настроенным менеджером лицензий. Для публикации web-клиента требуется только настроить видимость пользовательских ключей сервером 1С:Предприятие, которые он сам и будет раздавать. Создаем файл /opt/1C/v8.2/x86_64/conf/nethasp.ini следующего содержания(внимание, комментарии в фале только через точку с запятой [;]):

[NH_COMMON]

NH_TCPIP = Enabled

[NH_TCPIP]

NH_SERVER_ADDR = xx.xx.xx.xx

Перезапускаем сервер:

# service srv1cv82 restart
Starting 1C:Enterprise 8.2 server: OK

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

Публикация баз через web

Если не установлен apache, устанавливаем его:

# yum install httpd

Пользоваться консольной утилитой webinst от 1С не будем, прописываем все ручками. Создаем директорию алиаса 1c:

# mkdir /var/www/1c/

Создаем директорию виртуального хоста:

# mkdir /var/www/1c/имя_базы/

Создаем файл настройки виртуального хоста:

# vi /var/www/1c/имя_базы/default.vrd

Следующего содержания:

<?xml version="1.0" encoding="UTF-8"?>
    <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    base="/имя_базы"
    ib="Srvr=&quot;имя_кластера&quot;;Ref=&quot;имя_базы_в_кластере&quot;;"/>

Рекурсивно устанавливаем владельцем пользователя apache на директорию /var/www/1c/:

# chown -R apache:apache /var/www/1c/

Добавляем виртуальный хост в файл настройки /etc/httpd/conf/httpd.conf сервера apache:

<VirtualHost *:80>

    ServerName 1c.доменное.имя
    LoadModule _1cws_module "/opt/1C/v8.2/x86_64/wsap22.so"
    Alias "/имя_базы" "/var/www/1c/имя_базы"
    <Directory "/var/www/1c/имя_базы">

        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
        SetHandler 1c-application
        ManagedApplicationDescriptor "/var/www/1c/имя_базы/default.vrd"
    </Directory>

</VirtualHost>

Перезапускаем apache:

# apachectl restart

Пробуем подключиться через браузер по адресу http://1c.доменное.имя/имя_базы/

Комментариев нет: