60 lines
1.9 KiB
Bash
60 lines
1.9 KiB
Bash
#!/bin/bash
|
||
|
||
set -euo pipefail
|
||
|
||
log() {
|
||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
|
||
}
|
||
|
||
check() {
|
||
log "пути к java"
|
||
export JAVA_HOME="/opt/1cv8/x86_64/$SERVER_VERSION/jre/"
|
||
export PATH="/opt/1cv8/x86_64/$SERVER_VERSION/jre/bin:$PATH"
|
||
}
|
||
|
||
setup() {
|
||
if [ ! -d "/opt/1cv8/x86_64/${SERVER_VERSION}" ]; then
|
||
log "Нужная версия 1С $SERVER_VERSION не установленна в $WORKDIR "
|
||
log "Установка компонентов 1С версии ${SERVER_VERSION}"
|
||
/tmp/distr/setup-full-${SERVER_VERSION}-x86_64.run \
|
||
--enable-components ws,v8_install_deps,server_admin \
|
||
--mode unattended
|
||
else
|
||
echo "Платформа 1С $SERVER_VERSION уже установлена. Путь: $WORKDIR"
|
||
fi
|
||
|
||
if [ ! -f "/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 "Публикация Баз на вебсервере"
|
||
/opt/1cv8/x86_64/${SERVER_VERSION}/webinst \
|
||
-publish \
|
||
-apache24 \
|
||
-wsdir test \
|
||
-dir /var/www/1c/test \
|
||
-connstr "File=/bases/test;" \
|
||
-confpath /etc/apache2/apache2.conf
|
||
}
|
||
|
||
start() {
|
||
exec /usr/sbin/apache2ctl -DFOREGROUND
|
||
}
|
||
main() {
|
||
log "=== Запуск Web Сервера ==="
|
||
check
|
||
setup
|
||
log "=== Все готово, запускаем сервер ==="
|
||
start
|
||
}
|
||
|
||
# Обработка сигналов
|
||
trap 'log "Получен сигнал остановки"; exit 0' SIGTERM SIGINT
|
||
|
||
# Запуск основной функции
|
||
main "$@"
|