From 1c40cba01789950102dd03ad3a9d3f7094cc5a5a Mon Sep 17 00:00:00 2001 From: hosh1 Date: Mon, 11 Aug 2025 00:39:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B1=D0=B0=D0=B3,?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=B3=D0=B4=D0=B0=20=D0=BF=D1=80=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B5=20=D1=83=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B5=D1=80=D0=B2=D0=B8=D1=81?= =?UTF-8?q?=D0=BE=D0=B2,=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=81=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/install.sh b/install.sh index 8b40f20..c1991e7 100644 --- a/install.sh +++ b/install.sh @@ -67,7 +67,6 @@ check_existing_installation() { local apache_status=2 php_status=2 mariadb_status=2 redis_status=2 local need_reinstall=false - # Проверка Apache log_info "Проверка Apache..." if [ "$DISTRO_FAMILY" = "debian" ]; then if command -v apache2 >/dev/null 2>&1; then @@ -91,7 +90,6 @@ check_existing_installation() { fi fi - # Проверка PHP log_info "Проверка PHP..." if command -v php >/dev/null 2>&1; then php_status=0 @@ -99,7 +97,6 @@ check_existing_installation() { php_status=2 fi - # Проверка MariaDB log_info "Проверка MariaDB..." if command -v mysql >/dev/null 2>&1; then if systemctl is-active --quiet mariadb 2>/dev/null; then @@ -111,7 +108,6 @@ check_existing_installation() { mariadb_status=2 fi - # Проверка Redis log_info "Проверка Redis..." if command -v redis-cli >/dev/null 2>&1; then if systemctl is-active --quiet redis-server 2>/dev/null || systemctl is-active --quiet redis 2>/dev/null; then @@ -156,7 +152,6 @@ check_existing_installation() { 2) echo -e "Redis: ${RED}Не установлен${NC}"; need_reinstall=true ;; esac - # Проверка конфигурации базы данных if [ -f "/var/www/html/db_config.php" ]; then echo -e "Конфигурация БД: ${GREEN}Найдена${NC}" else @@ -178,12 +173,11 @@ check_existing_installation() { case $choice in [Yy]|[Yy][Ee][Ss]) log_info "Начинаем полную переустановку..." - return 0 # полная переустановка + return 0 ;; [Nn]|[Nn][Oo]) log_info "Переустановка отменена." - # Показываем информацию о доступе IP_ADDR=$(hostname -I | awk '{print $1}') if [ -f "/root/.db_password" ]; then EXISTING_PASSWORD=$(grep "DB_PASSWORD=" /root/.db_password | cut -d'=' -f2) @@ -299,25 +293,24 @@ if [ "$SKIP_PACKAGE_INSTALL" = false ]; then 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 + echo "" - echo "🚀 Начинаем установку Altcor..." + echo "Начинаем установку Altcor..." echo "" 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 - # Полное удаление MariaDB/MySQL для чистой установки apt remove --purge -y mariadb* mysql* >/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 $PKG_MANAGER remove -y nginx >/dev/null 2>&1 || true $PKG_MANAGER remove -y php php7* php80* php81* php82* >/dev/null 2>&1 || true - # Полное удаление MariaDB/MySQL для чистой установки $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 "Старые пакеты удалены" @@ -388,16 +381,13 @@ if [ "$SKIP_PACKAGE_INSTALL" = false ]; then $PKG_MANAGER install -y mariadb-server >/dev/null 2>&1 fi - # Важно: запускаем MariaDB сразу после установки log_info "Запуск MariaDB..." systemctl start mariadb >/dev/null 2>&1 systemctl enable mariadb >/dev/null 2>&1 - # Ждем, пока MariaDB полностью запустится log_info "Ожидание полного запуска MariaDB..." sleep 5 - # Проверяем, что MariaDB действительно запущен if ! systemctl is-active --quiet mariadb; then log_error "MariaDB не смог запуститься" exit 1 @@ -718,7 +708,6 @@ log_success "Права доступа настроены" log_step "Настройка базы данных MariaDB..." -# Проверяем, что MariaDB действительно работает if ! systemctl is-active --quiet mariadb; then log_error "MariaDB не запущен. Попытка запуска..." systemctl start mariadb @@ -730,14 +719,11 @@ if ! systemctl is-active --quiet mariadb; then fi fi -# Сначала выполняем базовую безопасную настройку log_info "Выполнение базовой настройки безопасности MariaDB..." -# Проверяем, можем ли мы подключиться без пароля (первичная установка) if mysql -u root -e "SELECT 1;" >/dev/null 2>&1; then log_info "Первичная настройка MariaDB (подключение без пароля доступно)..." - # Устанавливаем пароль root и очищаем ненужные данные MYSQL_SECURE_SCRIPT="/tmp/mysql_secure_$(date +%s).sql" cat > "$MYSQL_SECURE_SCRIPT" << MYSQL_SCRIPT -- Устанавливаем пароль для root @@ -775,7 +761,6 @@ MYSQL_SCRIPT elif mysql -u root -p"$DB_PASSWORD" -e "SELECT 1;" >/dev/null 2>&1; then log_info "MariaDB уже настроен с текущим паролем..." - # Просто создаем базу данных если она не существует MYSQL_UPDATE_SCRIPT="/tmp/mysql_update_$(date +%s).sql" cat > "$MYSQL_UPDATE_SCRIPT" << MYSQL_SCRIPT CREATE DATABASE IF NOT EXISTS ALTCor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; @@ -796,16 +781,13 @@ else log_error "Не удалось подключиться к MariaDB ни с пустым паролем, ни с текущим паролем" log_info "Попытка сброса пароля root в MariaDB..." - # Останавливаем MariaDB systemctl stop mariadb - # Запускаем в безопасном режиме для сброса пароля mysqld_safe --skip-grant-tables --skip-networking & MYSQLD_SAFE_PID=$! sleep 5 - # Сбрасываем пароль MYSQL_RESET_SCRIPT="/tmp/mysql_reset_$(date +%s).sql" cat > "$MYSQL_RESET_SCRIPT" << MYSQL_SCRIPT USE mysql; @@ -816,20 +798,17 @@ MYSQL_SCRIPT if mysql -u root < "$MYSQL_RESET_SCRIPT" >/dev/null 2>&1; then log_info "Пароль root сброшен" - - # Убиваем mysqld_safe + kill $MYSQLD_SAFE_PID 2>/dev/null || true sleep 2 killall mysqld_safe 2>/dev/null || true killall mysqld 2>/dev/null || true sleep 3 - # Запускаем MariaDB нормально systemctl start mariadb sleep 3 if systemctl is-active --quiet mariadb && mysql -u root -p"$DB_PASSWORD" -e "SELECT 1;" >/dev/null 2>&1; then - # Создаем базу данных MYSQL_FINAL_SCRIPT="/tmp/mysql_final_$(date +%s).sql" cat > "$MYSQL_FINAL_SCRIPT" << MYSQL_SCRIPT CREATE DATABASE IF NOT EXISTS ALTCor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; @@ -910,7 +889,6 @@ if ! php -r "echo phpversion();" >/dev/null 2>&1; then exit 1 fi -# Проверяем подключение к БД с новым паролем if ! mysql -u root -p"$DB_PASSWORD" -e "USE ALTCor; SELECT 1;" >/dev/null 2>&1; then log_error "Не удается подключиться к базе данных ALTCor" exit 1