Публикация базы 1С на веб-сервере
Для работы с 1С можно использовать браузер. Воспользуюсь такой возможностью.
На сайте https://its.1c.ru в разделе документации к серверу 1С:Предприятие 8.3.16, в руководстве администратора, Глава 8. Настройка веб-серверов для работы с «1С:Предприятием», помимо всего прочего, в общих требованиях касаемо ОС Linux сказано:
На компьютере, где выполняется публикация, должен быть установлен и настроен поддерживаемый веб-сервер. Для установки веб-сервера требуются административные привилегии на компьютере, на который будет установлен требуемый веб-сервер.
Публикация может выполняться двумя способами:
- С помощью диалога публикации на веб-сервере, если на компьютере с веб-сервером имеется возможность запустить конфигуратор необходимой разрядности.
- С помощью утилиты webinst.
- Для ОС Linux, чтобы выполнить публикацию, следует получить права суперпользователя (пользователь root) с помощью команды su или запускать приложение, которое выполняет публикацию, с помощью команды sudo.
- При публикации из конфигуратора пользователю задается вопрос о необходимости продолжить публикацию. В диалоге указывается причина возникновения (диалога) и присутствуют рекомендации по тому, как получить необходимые привилегии.
- При публикации с помощью утилиты webinst пользователю выдается диагностическое сообщение, но публикация продолжается.
- При работе с веб-сервером Apache: При работе под управлением ОС Linux рекомендуется использовать модуль мультипроцессной обработки worker. Другие доступные модули использовать не рекомендуется.
Подготовка
Необходимо установить веб-сервер Apache# apt install apache2 -y Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Будут установлены следующие дополнительные пакеты: apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libcurl4 liblua5.2-0 Предлагаемые пакеты: apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser Следующие НОВЫЕ пакеты будут установлены: apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libcurl4 liblua5.2-0 Обновлено 0 пакетов, установлено 11 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. Необходимо скачать 2 900 kB архивов. После данной операции объём занятого дискового пространства возрастёт на 9 510 kB. ...создам каталоги для баз (упомянутых здесь)
# mkdir -p /var/www/1c8/{applesrvltd,busterunltd,buh3rk}Публикация выполняется с помощью команды ./webinst Список доступных ключей (параметров) можно посмотреть выполнив
# /opt/1C/v8.3/x86_64/webinst 1C:Предприятие 8. Утилита публикации веб-клиента Публикация: webinst [-publish] websrv -wsdir VirtualDir -dir Dir -connstr connStr [-confPath confPath] Публикация на основе существующего vrd файла: webinst [-publish] websrv [-wsdir VirtualDir] -descriptor vrdPath -dir Dir [-connstr connStr] [-confPath confPath] Удаление публикации: webinst -delete websrv -wsdir VirtualDir [-dir Dir] [-connstr connStr] [-confPath confPath] Удаление публикации по существующему vrd файлу: webinst -delete websrv [-wsdir VirtualDir] -descriptor vrdPath [-dir Dir] [-connstr connStr] [-confPath confPath] Ключи: -publish: опубликовать, ключ по умолчанию -delete: удалить публикацию websrv -apache2: публикация Веб-клиента для Apache 2.0 -apache22: публикация Веб-клиента для Apache 2.2 -apache24: публикация Веб-клиента для Apache 2.4 -wsdir VirtualDir: виртуальный каталог -dir Dir: физический каталог, в который будет отображен виртуальный -descriptor vrdPath: путь к существующему vrd файлу -connstr connStr: строка соединения ИБ -confPath confPath: полный путь к конфигурационному файлу ApachТакже для публикации необходим конфигурационный файл Apache Создам его:
touch /etc/apache2/sites-available/srv1c8.conf
Публикация
Поскольку баз несколько, то сделаю так:#for db1c in applesrvltd busterunltd buh3rk; do echo "Публикация базы [$db1c]";/opt/1C/v8.3/x86_64/webinst -publish -apache24 -wsdir $db1c -dir /var/www/1c8/$db1c -connstr "Srvr=10.1.2.1;Ref=$db1c;" -confPath /etc/apache2/sites-available/srv1c8.conf;done Публикация базы [applesrvltd] Публикация выполнена Публикация базы [busterunltd] Публикация выполнена Публикация базы [buh3rk] Публикация выполненаВот так выглядит файл конфигурации Apache после публикации:
# cat /etc/apache2/sites-available/srv1c8.conf LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so" # 1c publication Alias "/applesrvltd" "/var/www/1c8/applesrvltd/" <Directory "/var/www/1c8/applesrvltd/"> AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor "/var/www/1c8/applsesrvltd/default.vrd" # 1c publication Alias "/busterunltd" "/var/www/1c8/busterunltd/" <Directory "/var/www/1c8/busterunltd/"> AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor "/var/www/1c8/busterunltd/default.vrd" # 1c publication Alias "/buh3rk" "/var/www/1c8/buh3rk/" <Directory "/var/www/1c8/buh3rk/"> AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor "/var/www/1c8/buh3rk/default.vrd"Необходимо включить новый файл конфигурации Apache:
# a2ensite srv1c8.conf Enabling site srv1c8. To activate the new configuration, you need to run: systemctl reload apache2для того, что бы веб-сервер перечитал настройки, необходимо выполнить следующую команду:
# systemctl reload apache2Проверяю, открою в браузере ссылку: http://10.1.2.1/buh3rk — здесь: 10.1.2.1 — адрес сервера 1С8 buh3rk — имя базы. Что бы ссылка выглядела «красивее», во время публикации можно указать любое имя после параметра «-wsdir» Вот и всё!
Спасибо, дружище, очень помог!
Небольшое уточнение:
1. пропущена часть пути в строке публикации
вместо -dir /var/www/1c8/$db1c писать -dir /var/www/www1c8/$db1c
2. если сервер 1С находится на этой же машине, вместо айпишника писать localhost
Итоговый вариант файла публикации:
root@sbut-ubuntu:~# cat publish1CBase.sh
#!/bin/sh
for db1c in buh-tzk buh-fzk buh-citadel sbut-1 sbut-2 sbut-3 sbut-4 test-buh-tzk test-buh-fzk test-buh-citadel test-sbut-1 test-sbut-2 test-sbut-3 test-sbut-4;
do echo «Публикация базы [$db1c]»;
/opt/1C/v8.3/x86_64/webinst -publish -apache24 -wsdir $db1c -dir /var/www/www1c8/$db1c -connstr «Srvr=localhost;Ref=$db1c;» -confPath /etc/apache2/sites-available/srv1c8.conf;
done
спасибо за замечание.
исправил, правда в другом месте:
было «mkdir -p /var/www/www1c8/{applesrvltd,busterunltd,buh3rk}»
стало «mkdir -p /var/www/1c8/{applesrvltd,busterunltd,buh3rk}»