Удалена возможность переустановки, только удаление
This commit is contained in:
145
install.sh
145
install.sh
@@ -4,21 +4,16 @@ clear
|
||||
set -e
|
||||
|
||||
UNINSTALL=false
|
||||
FORCE_REINSTALL=false
|
||||
|
||||
while getopts ":uf" opt; do
|
||||
while getopts ":u" opt; do
|
||||
case $opt in
|
||||
u)
|
||||
UNINSTALL=true
|
||||
;;
|
||||
f)
|
||||
FORCE_REINSTALL=true
|
||||
;;
|
||||
\?)
|
||||
echo -e "${RED}[Ошибка]${NC} Неизвестный параметр: -$OPTARG" >&2
|
||||
echo "Использование: $0 [-u] [-f]"
|
||||
echo "Использование: $0 [-u]"
|
||||
echo " -u Полное удаление"
|
||||
echo " -f Принудительная переустановка"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -164,19 +159,8 @@ check_existing_installation() {
|
||||
if [ "$need_reinstall" = false ] && [ "$apache_status" -eq 0 ] && [ "$php_status" -eq 0 ] && [ "$mariadb_status" -eq 0 ]; then
|
||||
log_success "Все компоненты уже установлены и работают корректно"
|
||||
echo ""
|
||||
|
||||
if [ "$FORCE_REINSTALL" = false ]; then
|
||||
echo "Система уже настроена и работает."
|
||||
echo "Altcor уже установлен. Установка остановлена."
|
||||
echo ""
|
||||
read -p "Выполнить полную переустановку? [y/n]: " choice
|
||||
|
||||
case $choice in
|
||||
[Yy]|[Yy][Ee][Ss])
|
||||
log_info "Начинаем полную переустановку..."
|
||||
return 0
|
||||
;;
|
||||
[Nn]|[Nn][Oo])
|
||||
log_info "Переустановка отменена."
|
||||
|
||||
IP_ADDR=$(hostname -I | awk '{print $1}')
|
||||
if [ -f "/root/.db_password" ]; then
|
||||
@@ -185,7 +169,6 @@ check_existing_installation() {
|
||||
EXISTING_PASSWORD="(не найден в /root/.db_password)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "🌐 Доступ к сайту:"
|
||||
echo " • http://localhost/"
|
||||
echo " • http://$IP_ADDR/"
|
||||
@@ -195,16 +178,6 @@ check_existing_installation() {
|
||||
echo " • Пароль: $EXISTING_PASSWORD"
|
||||
echo ""
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
log_info "Неверный ввод. Переустановка отменена."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
else
|
||||
log_info "Форсируем переустановку всех компонентов..."
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
log_info "Обнаружены отсутствующие или неработающие компоненты. Продолжаем установку..."
|
||||
return 0
|
||||
@@ -275,56 +248,48 @@ if [ "$UNINSTALL" = true ]; then
|
||||
fi
|
||||
|
||||
check_existing_installation
|
||||
INSTALL_TYPE=$?
|
||||
|
||||
if [ "$INSTALL_TYPE" -eq 1 ]; then
|
||||
SKIP_PACKAGE_INSTALL=true
|
||||
else
|
||||
SKIP_PACKAGE_INSTALL=false
|
||||
fi
|
||||
|
||||
DB_PASSWORD=$(generate_password)
|
||||
|
||||
if [ "$SKIP_PACKAGE_INSTALL" = false ]; then
|
||||
log_step "Остановка конфликтующих сервисов..."
|
||||
systemctl stop nginx httpd apache2 php*-fpm mariadb mysql 2>/dev/null || true
|
||||
systemctl disable nginx httpd 2>/dev/null || true
|
||||
log_step "Остановка конфликтующих сервисов..."
|
||||
systemctl stop nginx httpd apache2 php*-fpm mariadb mysql 2>/dev/null || true
|
||||
systemctl disable nginx httpd 2>/dev/null || true
|
||||
|
||||
log_info "Ожидание полной остановки служб..."
|
||||
sleep 3
|
||||
log_info "Ожидание полной остановки служб..."
|
||||
sleep 3
|
||||
|
||||
echo ""
|
||||
echo "Начинаем установку Altcor..."
|
||||
echo ""
|
||||
echo ""
|
||||
echo "Начинаем установку Altcor..."
|
||||
echo ""
|
||||
|
||||
log_step "Удаление старых версий пакетов..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
log_step "Удаление старых версий пакетов..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
apt remove -y nginx nginx-common nginx-core >/dev/null 2>&1 || true
|
||||
apt remove -y php7.* php8.0* php8.1* php8.2* libapache2-mod-php7.* libapache2-mod-php8.0* libapache2-mod-php8.1* libapache2-mod-php8.2* >/dev/null 2>&1 || true
|
||||
env DEBIAN_FRONTEND=noninteractive apt remove --purge -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" mariadb* mysql* </dev/null >/dev/null 2>&1 || true
|
||||
apt autoremove -y >/dev/null 2>&1 || true
|
||||
rm -rf /var/lib/mysql* /etc/mysql* /var/log/mysql* 2>/dev/null || true
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
$PKG_MANAGER remove -y nginx >/dev/null 2>&1 || true
|
||||
$PKG_MANAGER remove -y php php7* php80* php81* php82* >/dev/null 2>&1 || true
|
||||
$PKG_MANAGER remove -y mariadb* mysql* >/dev/null 2>&1 || true
|
||||
rm -rf /var/lib/mysql* /etc/my.cnf* /var/log/mysql* 2>/dev/null || true
|
||||
fi
|
||||
log_success "Старые пакеты удалены"
|
||||
fi
|
||||
log_success "Старые пакеты удалены"
|
||||
|
||||
log_step "Обновление списка пакетов..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
log_step "Обновление списка пакетов..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
apt update -y >/dev/null 2>&1
|
||||
apt install -y software-properties-common lsb-release ca-certificates curl wget gnupg2 apt-transport-https unzip >/dev/null 2>&1
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
$PKG_MANAGER update -y >/dev/null 2>&1
|
||||
$PKG_MANAGER install -y epel-release >/dev/null 2>&1 || true
|
||||
$PKG_MANAGER install -y curl wget gnupg2 unzip >/dev/null 2>&1
|
||||
fi
|
||||
log_success "Система обновлена, базовые пакеты установлены"
|
||||
fi
|
||||
log_success "Система обновлена, базовые пакеты установлены"
|
||||
|
||||
log_step "Добавление репозиториев для PHP 8.3..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
log_step "Добавление репозиториев для PHP 8.3..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
if ! apt-cache show php8.3 &>/dev/null; then
|
||||
log_info "Добавление PPA ondrej/php..."
|
||||
if ! add-apt-repository ppa:ondrej/php -y >/dev/null 2>&1; then
|
||||
@@ -343,7 +308,7 @@ if [ "$SKIP_PACKAGE_INSTALL" = false ]; then
|
||||
log_success "PHP 8.3 уже доступен в репозиториях"
|
||||
fi
|
||||
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
log_info "Добавление репозитория Remi..."
|
||||
if [ "$DISTRO" = "fedora" ]; then
|
||||
$PKG_MANAGER install -y https://rpms.remirepo.net/fedora/remi-release-$(rpm -E %fedora).rpm >/dev/null 2>&1 || true
|
||||
@@ -361,47 +326,47 @@ if [ "$SKIP_PACKAGE_INSTALL" = false ]; then
|
||||
exit 1
|
||||
fi
|
||||
log_success "Репозиторий Remi добавлен успешно"
|
||||
fi
|
||||
fi
|
||||
|
||||
log_step "Установка Apache..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
log_step "Установка Apache..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
apt install -y apache2 >/dev/null 2>&1
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
$PKG_MANAGER install -y httpd >/dev/null 2>&1
|
||||
fi
|
||||
log_success "Apache установлен"
|
||||
fi
|
||||
log_success "Apache установлен"
|
||||
|
||||
log_step "Установка MariaDB..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
log_step "Установка MariaDB..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
apt install -y mariadb-server >/dev/null 2>&1
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
$PKG_MANAGER install -y mariadb-server >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
log_info "Запуск MariaDB..."
|
||||
systemctl start mariadb >/dev/null 2>&1
|
||||
systemctl enable mariadb >/dev/null 2>&1
|
||||
log_info "Запуск MariaDB..."
|
||||
systemctl start mariadb >/dev/null 2>&1
|
||||
systemctl enable mariadb >/dev/null 2>&1
|
||||
|
||||
log_info "Ожидание полного запуска MariaDB..."
|
||||
sleep 5
|
||||
log_info "Ожидание полного запуска MariaDB..."
|
||||
sleep 5
|
||||
|
||||
if ! systemctl is-active --quiet mariadb; then
|
||||
if ! systemctl is-active --quiet mariadb; then
|
||||
log_error "MariaDB не смог запуститься"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
log_success "MariaDB установлен и запущен"
|
||||
log_success "MariaDB установлен и запущен"
|
||||
|
||||
log_step "Установка дополнительных компонентов (Redis, LibreOffice, Java)..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
log_step "Установка дополнительных компонентов (Redis, LibreOffice, Java)..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
apt install -y redis-server libreoffice default-jre >/dev/null 2>&1
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
$PKG_MANAGER install -y redis libreoffice java-11-openjdk >/dev/null 2>&1
|
||||
fi
|
||||
log_success "Дополнительные компоненты установлены"
|
||||
fi
|
||||
log_success "Дополнительные компоненты установлены"
|
||||
|
||||
log_step "Установка PHP 8.3 и расширений..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
log_step "Установка PHP 8.3 и расширений..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
PHP_PACKAGES="php8.3 php8.3-cli php8.3-common php8.3-mysql php8.3-curl php8.3-gd \
|
||||
php8.3-mbstring php8.3-xml php8.3-zip php8.3-opcache php8.3-intl \
|
||||
php8.3-bcmath libapache2-mod-php8.3"
|
||||
@@ -411,7 +376,7 @@ if [ "$SKIP_PACKAGE_INSTALL" = false ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||
if [ "$DISTRO" = "fedora" ]; then
|
||||
PHP_PACKAGES="php php-cli php-common php-mysqlnd php-curl php-gd \
|
||||
php-mbstring php-xml php-zip php-opcache php-intl \
|
||||
@@ -430,11 +395,8 @@ if [ "$SKIP_PACKAGE_INSTALL" = false ]; then
|
||||
if command -v php83 >/dev/null 2>&1 && [ ! -f /usr/bin/php ]; then
|
||||
ln -sf /usr/bin/php83 /usr/bin/php >/dev/null 2>&1 || true
|
||||
fi
|
||||
fi
|
||||
log_success "PHP 8.3 и расширения установлены"
|
||||
else
|
||||
log_info "Пропускаем установку пакетов (используем существующие)"
|
||||
fi
|
||||
log_success "PHP 8.3 и расширения установлены"
|
||||
|
||||
log_step "Настройка Apache и модулей..."
|
||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||
@@ -698,6 +660,10 @@ if (file_exists(__DIR__ . '/db_config.php') && is_readable(__DIR__ . '/db_config
|
||||
echo "<strong>Не удалось загрузить конфигурацию БД</strong>";
|
||||
echo "</div>";
|
||||
}
|
||||
|
||||
echo "</div>";
|
||||
echo "</body>";
|
||||
echo "</html>";
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -991,6 +957,5 @@ echo " • Логи Apache: /var/log/apache2/ или /var/log/httpd/"
|
||||
echo ""
|
||||
echo " Дополнительная информация:"
|
||||
echo " • Учетные данные БД: $DB_CREDENTIALS_FILE"
|
||||
echo " • Для переустановки: ./install.sh -f"
|
||||
echo " • Для удаления: ./install.sh -u"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user