72 lines
2.3 KiB
Bash
72 lines
2.3 KiB
Bash
#!/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 "Проверка наличия сервера"
|
||
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
|
||
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 "$@"
|