Публикация баз данных на сервере под управлением Linux без правки apache2.conf

21.11.22

Администрирование - Администрирование веб-серверов

Способ добавления баз 1С в apache2 без правки apache2.conf.

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

1С предлагает ковыряние в файле /etc/apache2/apache2.conf. Для публикации базы данных нужно загрузить модуль wsap2.so, и настроить псевдоним (alias) для базы данных.

Этот файл может быть затёрт при обновлении пакета. Или в обновлении могут появиться важные правки от сопровождающих, которые не стоит игнорировать. В общем, простое поддержание системы в актуальном состоянии превращается в проблему.

К тому же, в 1С выяснили, что в Linux тоже можно ставить несколько версий одной и той же программы параллельно. И они смогут функционировать. После этих нововведений правка этого файла стала более сложной, т.к., путь к модулю теперь стал зависеть от версии платформы. Т.е., каждый раз после смены версии нужно править /etc/apache2/apache2.conf.

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

ls -l /opt/1cv8/
итого 12
drwxr-xr-x 2 root root 4096 окт 24 19:08 common
drwxr-xr-x 2 root root 4096 сен 30  2021 conf
lrwxrwxrwx 1 root root   18 окт 24 19:10 current -> x86_64/8.3.22.1603
drwxr-xr-x 5 root root 4096 окт 24 19:08 x86_64

После установки новой версии, если на неё переключается управление, правим ссылку /opt/1cv8/current на нужный каталог и запускаем сервис. Для серверов в кластере это тоже удобный механизм.

Для управления загрузкой модулей есть a2enmod и a2dismod. Чтобы эти приложения управляли загрузкой модуля wsap, нужно в каталоге /etc/apache2/mods-available разместить файл с понятным именем и расширением '.load'. Например, wsap-current.load с таким содержимым:

LoadModule _1cws_module "/opt/1cv8/current/wsap24.so"

И при вызове a2enmod этот модуль можно подключить:

# a2enmod
Your choices are: access_compat actions alias allowmethods asis auth_basic auth_digest auth_form authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authnz_fcgi authnz_ldap authz_core authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex buffer cache cache_disk cache_socache cern_meta cgi cgid charset_lite data dav dav_fs dav_lock dbd deflate dialup dir dump_io echo env expires ext_filter file_cache filter headers heartbeat heartmonitor http2 ident imagemap include info lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic lbmethod_heartbeat ldap log_debug log_forensic lua macro mime mime_magic mpm_event mpm_prefork mpm_worker negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_express proxy_fcgi proxy_fdpass proxy_ftp proxy_hcheck proxy_html proxy_http proxy_http2 proxy_scgi proxy_wstunnel ratelimit reflector remoteip reqtimeout request rewrite sed session session_cookie session_crypto session_dbd setenvif slotmem_plain slotmem_shm socache_dbm socache_memcache socache_shmcb speling ssl status substitute suexec unique_id userdir usertrack vhost_alias wsap-current xml2enc
Which module(s) do you want to enable (wildcards ok)?

Собственно, подключение:

# a2enmod wsap-current
Enabling module wsap-current.
To activate the new configuration, you need to run:
  systemctl restart apache2

После загрузки модуля нужно прописать применение обработчика 1c-application к определённым псевдонимам в настройках сайта.

Можно писать по одному сайту на базу, но это не очень удобно. Применение обработчика для разных псевдонимов описывается в отдельных файлах в каталоге /etc/apache2/1c (а можно и этот каталог разбить на 1c-avaible и 1c-enabled, но тогда утилиту для манипуляций символическими ссылками с этими фалами нужно будет писать самому). И загружаются в описании сайта одной строкой:

IncludeOptional 1c/*.wsap

Понятно, что файлы должны быть с расширением '.wsap', "чтоб никто не догадался"...

Содержимое файла, примерно такое:

# 1c publication
Alias "/acc" "/var/1C/www/acc/"
<Directory "/var/1C/www/acc/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/1C/www/acc/default.vrd"
</Directory>

Путь '/var/1C/www' можно заменить на другой удобный и понятный.

Да, это именно то, что прописывает, ломая основной конфигурационный файл apache2, webinst от самой платформы 1С. Плюсами данной методики можно считать:

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

  • довольно просто переключаться между версиями платформы 1С;

  • те механизмы, что 1С предлагает для публикации базы данных, будут работать (надо только подсовывать фэйковый httpd.conf), например, публикация базы данных с псевдонимом 'base' (после отработки достаточно перезапустить сервер):

cp /etc/apache2/apache2.conf /tmp/httpd.conf ; /opt/1cv8/current/webinst -publish -apache24 -wsdir base -dir /var/1C/www/base -connstr "Srvr=192.168.0.10;Ref=Base;" -confpath /tmp/httpd.conf && diff /tmp/httpd.conf /etc/apache2/apache2.conf | sed -n 's/< LoadModule.*//gp; /< /s|||p' > /etc/apache2/1c/base.wsap

 

Linux apache2 webinst

См. также

Установка Apache на РедОС и публикация 1С по протоколу http

Администрирование веб-серверов Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статья описывает алгоритм установки, настройки и "сопряжения" с 1С веб-сервера Apache на РедОС. Статья, может, будет полезна тем, кто ищет в сети работающие алгоритмы установки веб-сервера и публикации на нем информационных баз 1С в контуре операционной системы РедОС. Помимо этого в статье рассмотрены некоторые спорные моменты, для анализа которых не удалось найти достаточно информации в сети.

вчера в 09:30    281    artemusII    5    

7

В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Рецепты от Капитана

Облачные сервисы, хостинг Linux Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В публикации рассматриваются все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Как случаи, когда сервер 1С авторизирует веб и обычных клиентов 1С в active directory, так и когда сам сервер является клиентом, например при HTTP запросах выполняемых сервером 1С.

18.03.2024    560    capitan    0    

9

Три пингвина под окном… Точки над Ё. Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux

Облачные сервисы, хостинг Linux Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Прошлая публикация "Три пингвина под окном… Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux" набрала более 20К просмотров. В моем случае это абсолютный рекорд. Как и обещал в ней, рассказываю, как установить неподдерживаемый дистрибутив ОС у облачного провайдера.

25.02.2024    2260    capitan    0    

6

Тестовый кластер 1С на UBUNTU 23.10

Linux Платформа 1С v8.3 Россия Абонемент ($m)

Описан процесс создания простого кластера 1С в связке: отдельный сервер UBUNTU версия 23.10 + сервер 1С версия 8.3.23.1997 + PostgreSQL версия 15. Автор не претендует на новизну решения, но пошаговая упорядоченная инструкция позволяет стандартными методами быстро и просто создать кластер 1С на серверах Linux.

1 стартмани

08.02.2024    1579    janerev1956    7    

18

В облаке, как дома: Устраиваемся поудобнее. Рабочее место пользователя 1С на базе РЕД ОС (HTTPS и архивирование)

Linux Облачные сервисы, хостинг Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

На прошедшем вебинаре "В облаке, как дома: Как настроить рабочее место пользователя 1С на базе РЕД ОС" мы договорились, что продолжением будет установка соединения по HTTPS и архивирование. Это финальные штрихи в настройке рабочего места. Вот и оно (продолжение) или они (штрихи), прошу под кат...

29.01.2024    790    capitan    5    

6

Определение длительности аудиофайла (Linux)

Linux Разное Платформа 1С v8.3 Абонемент ($m)

Пример обработки для определения длительности аудиофайла в среде Linux.

1 стартмани

12.01.2024    397    0    ErAK    2    

2

Три пингвина под окном... Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux

Linux Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

На прошедшем вебинаре "В облаке, как дома: Как настроить рабочее место пользователя 1С на базе РЕД ОС" мы договорились, что продолжением будет обзор рабочих мест на других отечественных ОС. Вот и оно (продолжение) или он (обзор), прошу под кат...

25.12.2023    2159    capitan    6    

14

Интерпретатор команд (только Linux)

Linux Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Интерпретатор команд для Linux, позволяет выполнять команды в среде Linux под правами пользователя сервера 1С. Полезно, когда необходимо выполнить команду на сервере, а доступа к командной строке нет.

1 стартмани

11.12.2023    523    3    Svb84    0    

4
Оставьте свое сообщение