srv1c-web

This commit is contained in:
ark
2026-09-16 16:37:10 +03:00
parent e88e8daac5
commit b413b69ad5
+76
View File
@@ -0,0 +1,76 @@
#!/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 "$@"