#!/bin/bash set -euo pipefail log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" } check() { 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 if [ ! -d $dir ]; then return 1 fi 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 } 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 } start() { exec /usr/sbin/apache2ctl -DFOREGROUND } main() { log "=== Запуск Web Сервера ===" check log "=== Все готово, запускаем сервер ===" start } # Обработка сигналов trap 'log "Получен сигнал остановки"; exit 0' SIGTERM SIGINT # Запуск основной функции main "$@"