#!/bin/bash set -euo pipefail log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" } publish() { log "Публикация $base_name" $WORKDIR/webinst \ -publish \ -apache24 \ -wsdir $base_name \ -dir /var/www/1c/$base_name \ -connstr "File=/bases/$base_name;" \ -confpath /etc/apache2/apache2.conf } check() { log "Подготовка модулей apache" apache2ctl -V | grep -i mpm a2dismod mpm_event a2dismod mpm_prefork a2enmod mpm_worker sed -i '/StartServers/s/2/1/g' /etc/apache2/mods-available/mpm_worker.conf sed -i '/MinSpareThreads/s/25/1/g' /etc/apache2/mods-available/mpm_worker.conf sed -i '/MaxSpareThreads/s/75/1/g' /etc/apache2/mods-available/mpm_worker.conf log "Проверка наличия платформы" if [ ! -d "/opt/1cv8/x86_64/${SERVER_VERSION}/" ]; then log "Нужная версия 1С $SERVER_VERSION не установленна в $WORKDIR " return 1 else log "Платформа 1С $SERVER_VERSION уже установлена. Путь: $WORKDIR" fi log "Проверка установленного модуля поддержки веб сервисов" if [ ! -e "/etc/apache2/mods-enabled/wsap24.load" ]; then log "Подключаю модуль wsap24" echo "LoadModule _1cws_module /opt/1cv8/x86_64/${SERVER_VERSION}/wsap24.so" > /etc/apache2/mods-available/wsap24.load ln -s /etc/apache2/mods-available/wsap24.load /etc/apache2/mods-enabled/wsap24.load else log "Модуль уже wsap24.load подключен" fi log "Проверка баз в $BASES_DIR" if [ -d $BASES_DIR ]; then log "Каталог баз данных $BASES_DIR обнаружен" for dir in "$BASES_DIR"/*; do log "Обрабатываем $dir" if [ -f $dir/1Cv8.1CD ]; then log "$dir - каталог базы данных" log "Назначаю права на каталог $dir " chown -R www-data:www-data $dir local base_name=$(basename "$dir") publish "$base_name" fi done fi log "Перечисление лицензий:" /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring license list } start() { exec /usr/sbin/apache2ctl -DFOREGROUND } main() { log "=== Запуск Web Сервера ===" check log "=== Все готово, запускаем сервер ===" start } # Обработка сигналов trap 'log "Получен сигнал остановки"; exit 0' SIGTERM SIGINT # Запуск основной функции main "$@"