Публикация баз данных на сервере под управлением 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

См. также

Linux Системный администратор Программист Бесплатно (free)

Проект перевода 10+ систем 1С на 2000+ пользователей в Авито завершен успешно, преодолев технические трудности и «черных лебедей» в виде неопределенности, демотивации, потерь производительности и нереалистичных требований руководства. Расскажем об опыте проекта, в котором было «очень страшно», но в итоге всё получилось.

29.11.2024    862    kirill.skoromykin    1    

6

Администрирование веб-серверов Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Узбекистан Абонемент ($m)

Внешняя обработка, подходит для любых конфигураций. Поддерживает apache и iis! Публикуйте базы легко и просто!

1 стартмани

22.11.2024    1305    27    Rafael-87    34    

31

Linux Программист Бесплатно (free)

При многолетней эксплуатации 1С на Windows и MS SQL в базе накапливаются не самые оптимальные запросы, COM-объекты и скрипты, зависящие от ОС. Из-за этого процесс перехода на PostgreSQL и переноса сервера 1С на Linux неизбежно осложняется длительным исправлением кода и оптимизацией запросов. Расскажем о том, как с задачей такого рефакторинга справились в компании Avito.

13.11.2024    5098    klimat12    15    

26

Администрирование веб-серверов Сервера Системный администратор Программист Абонемент ($m)

WEB приложение для управления сеансами сервера 1С, имеет адаптивный web интерфейс. Возможности: удаление сеансов; завершение rphost процессов; запуск службы 1С сервера (если остановлена). Используется авторизация BasicAuth с защитой от брутфорса. Поддерживает работу по http https протоколам.

1 стартмани

08.11.2024    501    7    gortrex    2    

3

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

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

31.10.2024    1396    capitan    0    

0

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

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая, прочая... На закуску разбираемся с отказоустойчивостью. В этой публикации для серверов 1С заодно попробуем подобно сериалу «Разрушители легенд» подтвердить или опровергнуть пару устойчивых мифов о требованиях назначения функциональности.

18.10.2024    1822    capitan    5    

12

Администрирование веб-серверов Бесплатно (free)

Ошибка 1С веб-сервис IIS. Ошибка доступа к файлу...183(0x000000B7) Невозможно создать файл, так как он уже существует.

27.09.2024    690    California_Dreaming    0    

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