Добавлена возможность переустановки
This commit is contained in:
487
install.sh
487
install.sh
@@ -4,16 +4,21 @@ clear
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
UNINSTALL=false
|
UNINSTALL=false
|
||||||
|
REINSTALL=false
|
||||||
|
|
||||||
while getopts ":u" opt; do
|
while getopts ":ur" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
u)
|
u)
|
||||||
UNINSTALL=true
|
UNINSTALL=true
|
||||||
;;
|
;;
|
||||||
|
r)
|
||||||
|
REINSTALL=true
|
||||||
|
;;
|
||||||
\?)
|
\?)
|
||||||
echo -e "${RED}[Ошибка]${NC} Неизвестный параметр: -$OPTARG" >&2
|
echo -e "${RED}[Ошибка]${NC} Неизвестный параметр: -$OPTARG" >&2
|
||||||
echo "Использование: $0 [-u]"
|
echo "Использование: $0 [-u] [-r]"
|
||||||
echo " -u Полное удаление"
|
echo " -u Полное удаление"
|
||||||
|
echo " -r Переустановка (удаление + установка)"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -157,22 +162,55 @@ check_existing_installation() {
|
|||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if [ "$need_reinstall" = false ] && [ "$apache_status" -eq 0 ] && [ "$php_status" -eq 0 ] && [ "$mariadb_status" -eq 0 ]; then
|
if [ "$need_reinstall" = false ] && [ "$apache_status" -eq 0 ] && [ "$php_status" -eq 0 ] && [ "$mariadb_status" -eq 0 ]; then
|
||||||
|
if [ "$REINSTALL" = true ]; then
|
||||||
|
log_warning "Обнаружена существующая установка. Начинаем переустановку..."
|
||||||
|
return 1
|
||||||
|
else
|
||||||
log_success "Все компоненты уже установлены и работают корректно"
|
log_success "Все компоненты уже установлены и работают корректно"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Altcor уже установлен. Установка остановлена."
|
echo -e "${YELLOW}Altcor уже полностью установлен и функционирует.${NC}"
|
||||||
|
echo ""
|
||||||
|
read -p "Хотите переустановить систему? [y/n]: " -n 1 -r
|
||||||
|
echo ""
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
log_info "Начинаем переустановку по запросу пользователя..."
|
||||||
|
REINSTALL=true
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
log_info "Переустановка отменена. Система остается без изменений."
|
||||||
|
echo ""
|
||||||
|
echo "Для принудительной переустановки используйте: $0 -r"
|
||||||
echo ""
|
echo ""
|
||||||
exit 0
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
log_info "Обнаружены отсутствующие или неработающие компоненты. Продолжаем установку..."
|
if [ "$need_reinstall" = true ]; then
|
||||||
|
log_warning "Обнаружены проблемы с установленными компонентами."
|
||||||
|
echo ""
|
||||||
|
read -p "Хотите переустановить всю систему? [y/n]: " -n 1 -r
|
||||||
|
echo ""
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
log_info "Начинаем полную переустановку..."
|
||||||
|
REINSTALL=true
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
log_info "Продолжаем обычную установку/обновление компонентов..."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
log_info "Обнаружены отсутствующие компоненты. Продолжаем установку..."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
full_uninstall() {
|
full_uninstall() {
|
||||||
log_step "Начинаем полное удаление Altcor... :("
|
log_step "Начинаем полное удаление Altcor... :("
|
||||||
|
|
||||||
log_info "Остановка сервисов..."
|
log_info "Остановка сервисов..."
|
||||||
systemctl stop nginx apache2 httpd php*-fpm mariadb mysql redis 2>/dev/null || true
|
systemctl stop nginx apache2 httpd php*-fpm mariadb mysql redis redis-server 2>/dev/null || true
|
||||||
|
|
||||||
log_info "Удаление пакетов..."
|
log_info "Удаление пакетов..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
@@ -196,84 +234,57 @@ full_uninstall() {
|
|||||||
/root/.db_password 2>/dev/null || true
|
/root/.db_password 2>/dev/null || true
|
||||||
|
|
||||||
log_success "Полное удаление завершено."
|
log_success "Полное удаление завершено."
|
||||||
|
|
||||||
|
if [ "$REINSTALL" = false ]; then
|
||||||
exit 0
|
exit 0
|
||||||
|
else
|
||||||
|
log_info "Переустановка: удаление завершено, продолжаем установку..."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
proceed_with_installation() {
|
||||||
log_error "Запустите этот скрипт вместе с sudo."
|
DB_PASSWORD=$(generate_password)
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /etc/os-release ]; then
|
log_step "Остановка конфликтующих сервисов..."
|
||||||
. /etc/os-release
|
systemctl stop nginx httpd apache2 php*-fpm mariadb mysql 2>/dev/null || true
|
||||||
DISTRO="$ID"
|
systemctl disable nginx httpd 2>/dev/null || true
|
||||||
FAMILY="$ID_LIKE"
|
|
||||||
else
|
|
||||||
log_error "Не удалось определить дистрибутив."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if echo "$DISTRO $FAMILY" | grep -qi "debian\|ubuntu"; then
|
log_info "Ожидание полной остановки служб..."
|
||||||
PKG_MANAGER="apt"
|
sleep 3
|
||||||
DISTRO_FAMILY="debian"
|
|
||||||
elif echo "$DISTRO $FAMILY" | grep -qi "rhel\|centos\|fedora"; then
|
|
||||||
PKG_MANAGER="dnf"
|
|
||||||
DISTRO_FAMILY="rhel"
|
|
||||||
if ! command -v dnf >/dev/null 2>&1; then
|
|
||||||
PKG_MANAGER="yum"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
log_error "Ваш дистрибутив '$DISTRO' не поддерживается. Поддерживаются: Debian/Ubuntu, CentOS/RHEL/Fedora."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$UNINSTALL" = true ]; then
|
echo ""
|
||||||
full_uninstall
|
echo "Начинаем установку Altcor..."
|
||||||
fi
|
echo ""
|
||||||
|
|
||||||
check_existing_installation
|
log_step "Удаление старых версий пакетов..."
|
||||||
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
DB_PASSWORD=$(generate_password)
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
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 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
|
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
|
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
|
apt autoremove -y >/dev/null 2>&1 || true
|
||||||
rm -rf /var/lib/mysql* /etc/mysql* /var/log/mysql* 2>/dev/null || 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 nginx >/dev/null 2>&1 || true
|
||||||
$PKG_MANAGER remove -y php php7* php80* php81* php82* >/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
|
$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
|
rm -rf /var/lib/mysql* /etc/my.cnf* /var/log/mysql* 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
log_success "Старые пакеты удалены"
|
log_success "Старые пакеты удалены"
|
||||||
|
|
||||||
log_step "Обновление списка пакетов..."
|
log_step "Обновление списка пакетов..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
apt update -y >/dev/null 2>&1
|
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
|
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 update -y >/dev/null 2>&1
|
||||||
$PKG_MANAGER install -y epel-release >/dev/null 2>&1 || true
|
$PKG_MANAGER install -y epel-release >/dev/null 2>&1 || true
|
||||||
$PKG_MANAGER install -y curl wget gnupg2 unzip >/dev/null 2>&1
|
$PKG_MANAGER install -y curl wget gnupg2 unzip >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
log_success "Система обновлена, базовые пакеты установлены"
|
log_success "Система обновлена, базовые пакеты установлены"
|
||||||
|
|
||||||
log_step "Добавление репозиториев для PHP 8.3..."
|
log_step "Добавление репозиториев для PHP 8.3..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
if ! apt-cache show php8.3 &>/dev/null; then
|
if ! apt-cache show php8.3 &>/dev/null; then
|
||||||
log_info "Добавление PPA ondrej/php..."
|
log_info "Добавление PPA ondrej/php..."
|
||||||
if ! add-apt-repository ppa:ondrej/php -y >/dev/null 2>&1; then
|
if ! add-apt-repository ppa:ondrej/php -y >/dev/null 2>&1; then
|
||||||
@@ -292,7 +303,7 @@ if [ "$DISTRO_FAMILY" = "debian" ]; then
|
|||||||
log_success "PHP 8.3 уже доступен в репозиториях"
|
log_success "PHP 8.3 уже доступен в репозиториях"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
log_info "Добавление репозитория Remi..."
|
log_info "Добавление репозитория Remi..."
|
||||||
if [ "$DISTRO" = "fedora" ]; then
|
if [ "$DISTRO" = "fedora" ]; then
|
||||||
$PKG_MANAGER install -y https://rpms.remirepo.net/fedora/remi-release-$(rpm -E %fedora).rpm >/dev/null 2>&1 || true
|
$PKG_MANAGER install -y https://rpms.remirepo.net/fedora/remi-release-$(rpm -E %fedora).rpm >/dev/null 2>&1 || true
|
||||||
@@ -310,47 +321,47 @@ elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
log_success "Репозиторий Remi добавлен успешно"
|
log_success "Репозиторий Remi добавлен успешно"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Установка Apache..."
|
log_step "Установка Apache..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
apt install -y apache2 >/dev/null 2>&1
|
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
|
$PKG_MANAGER install -y httpd >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
log_success "Apache установлен"
|
log_success "Apache установлен"
|
||||||
|
|
||||||
log_step "Установка MariaDB..."
|
log_step "Установка MariaDB..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
apt install -y mariadb-server >/dev/null 2>&1
|
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
|
$PKG_MANAGER install -y mariadb-server >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_info "Запуск MariaDB..."
|
log_info "Запуск MariaDB..."
|
||||||
systemctl start mariadb >/dev/null 2>&1
|
systemctl start mariadb >/dev/null 2>&1
|
||||||
systemctl enable mariadb >/dev/null 2>&1
|
systemctl enable mariadb >/dev/null 2>&1
|
||||||
|
|
||||||
log_info "Ожидание полного запуска MariaDB..."
|
log_info "Ожидание полного запуска MariaDB..."
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
if ! systemctl is-active --quiet mariadb; then
|
if ! systemctl is-active --quiet mariadb; then
|
||||||
log_error "MariaDB не смог запуститься"
|
log_error "MariaDB не смог запуститься"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_success "MariaDB установлен и запущен"
|
log_success "MariaDB установлен и запущен"
|
||||||
|
|
||||||
log_step "Установка дополнительных компонентов (Redis, LibreOffice, Java)..."
|
log_step "Установка дополнительных компонентов (Redis, LibreOffice, Java)..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
apt install -y redis-server libreoffice default-jre >/dev/null 2>&1
|
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
|
$PKG_MANAGER install -y redis libreoffice java-11-openjdk >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
log_success "Дополнительные компоненты установлены"
|
log_success "Дополнительные компоненты установлены"
|
||||||
|
|
||||||
log_step "Установка PHP 8.3 и расширений..."
|
log_step "Установка PHP 8.3 и расширений..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
PHP_PACKAGES="php8.3 php8.3-cli php8.3-common php8.3-mysql php8.3-curl php8.3-gd \
|
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-mbstring php8.3-xml php8.3-zip php8.3-opcache php8.3-intl \
|
||||||
php8.3-bcmath libapache2-mod-php8.3"
|
php8.3-bcmath libapache2-mod-php8.3"
|
||||||
@@ -360,7 +371,7 @@ if [ "$DISTRO_FAMILY" = "debian" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
if [ "$DISTRO" = "fedora" ]; then
|
if [ "$DISTRO" = "fedora" ]; then
|
||||||
PHP_PACKAGES="php php-cli php-common php-mysqlnd php-curl php-gd \
|
PHP_PACKAGES="php php-cli php-common php-mysqlnd php-curl php-gd \
|
||||||
php-mbstring php-xml php-zip php-opcache php-intl \
|
php-mbstring php-xml php-zip php-opcache php-intl \
|
||||||
@@ -379,11 +390,11 @@ elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
|||||||
if command -v php83 >/dev/null 2>&1 && [ ! -f /usr/bin/php ]; 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
|
ln -sf /usr/bin/php83 /usr/bin/php >/dev/null 2>&1 || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
log_success "PHP 8.3 и расширения установлены"
|
log_success "PHP 8.3 и расширения установлены"
|
||||||
|
|
||||||
log_step "Настройка Apache и модулей..."
|
log_step "Настройка Apache и модулей..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
a2enmod php8.3 rewrite ssl headers expires deflate >/dev/null 2>&1
|
a2enmod php8.3 rewrite ssl headers expires deflate >/dev/null 2>&1
|
||||||
|
|
||||||
for php_ver in 7.4 8.0 8.1 8.2; do
|
for php_ver in 7.4 8.0 8.1 8.2; do
|
||||||
@@ -394,7 +405,7 @@ if [ "$DISTRO_FAMILY" = "debian" ]; then
|
|||||||
APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
|
APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
|
||||||
WEBSERVER_USER="www-data"
|
WEBSERVER_USER="www-data"
|
||||||
|
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
WEBROOT="/var/www/html"
|
WEBROOT="/var/www/html"
|
||||||
APACHE_CONF="/etc/httpd/conf.d/000-default.conf"
|
APACHE_CONF="/etc/httpd/conf.d/000-default.conf"
|
||||||
WEBSERVER_USER="apache"
|
WEBSERVER_USER="apache"
|
||||||
@@ -407,13 +418,13 @@ LoadModule rewrite_module modules/mod_rewrite.so
|
|||||||
SetHandler application/x-httpd-php
|
SetHandler application/x-httpd-php
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
log_success "Модули Apache настроены"
|
log_success "Модули Apache настроены"
|
||||||
|
|
||||||
log_step "Создание конфигурации виртуального хоста..."
|
log_step "Создание конфигурации виртуального хоста..."
|
||||||
mkdir -p "$WEBROOT"
|
mkdir -p "$WEBROOT"
|
||||||
|
|
||||||
cat > "$APACHE_CONF" <<EOF
|
cat > "$APACHE_CONF" <<EOF
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
DocumentRoot $WEBROOT
|
DocumentRoot $WEBROOT
|
||||||
ServerName localhost
|
ServerName localhost
|
||||||
@@ -461,21 +472,21 @@ cat > "$APACHE_CONF" <<EOF
|
|||||||
CustomLog \${APACHE_LOG_DIR}/access.log combined
|
CustomLog \${APACHE_LOG_DIR}/access.log combined
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
EOF
|
EOF
|
||||||
log_success "Конфигурация виртуального хоста создана"
|
log_success "Конфигурация виртуального хоста создана"
|
||||||
|
|
||||||
log_step "Настройка PHP.ini..."
|
log_step "Настройка PHP.ini..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
PHP_INI_PATH="/etc/php/8.3/apache2/php.ini"
|
PHP_INI_PATH="/etc/php/8.3/apache2/php.ini"
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
if [ "$DISTRO" = "fedora" ]; then
|
if [ "$DISTRO" = "fedora" ]; then
|
||||||
PHP_INI_PATH="/etc/php.ini"
|
PHP_INI_PATH="/etc/php.ini"
|
||||||
else
|
else
|
||||||
PHP_INI_PATH="/etc/opt/remi/php83/php.ini"
|
PHP_INI_PATH="/etc/opt/remi/php83/php.ini"
|
||||||
[ ! -f "$PHP_INI_PATH" ] && PHP_INI_PATH="/etc/php.ini"
|
[ ! -f "$PHP_INI_PATH" ] && PHP_INI_PATH="/etc/php.ini"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$PHP_INI_PATH" ]; then
|
if [ -f "$PHP_INI_PATH" ]; then
|
||||||
cp "$PHP_INI_PATH" "${PHP_INI_PATH}.backup.$(date +%Y%m%d_%H%M%S)"
|
cp "$PHP_INI_PATH" "${PHP_INI_PATH}.backup.$(date +%Y%m%d_%H%M%S)"
|
||||||
|
|
||||||
sed -i 's/;*upload_max_filesize = .*/upload_max_filesize = 64M/' "$PHP_INI_PATH"
|
sed -i 's/;*upload_max_filesize = .*/upload_max_filesize = 64M/' "$PHP_INI_PATH"
|
||||||
@@ -495,18 +506,18 @@ if [ -f "$PHP_INI_PATH" ]; then
|
|||||||
sed -i 's/;*log_errors = .*/log_errors = On/' "$PHP_INI_PATH"
|
sed -i 's/;*log_errors = .*/log_errors = On/' "$PHP_INI_PATH"
|
||||||
|
|
||||||
log_success "PHP.ini настроен"
|
log_success "PHP.ini настроен"
|
||||||
else
|
else
|
||||||
log_warning "Файл PHP.ini не найден по пути: $PHP_INI_PATH"
|
log_warning "Файл PHP.ini не найден по пути: $PHP_INI_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Создание конфигурации базы данных..."
|
log_step "Создание конфигурации базы данных..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
DB_SOCKET="/var/run/mysqld/mysqld.sock"
|
DB_SOCKET="/var/run/mysqld/mysqld.sock"
|
||||||
else
|
else
|
||||||
DB_SOCKET="/var/lib/mysql/mysql.sock"
|
DB_SOCKET="/var/lib/mysql/mysql.sock"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > "$WEBROOT/db_config.php" << EOF
|
cat > "$WEBROOT/db_config.php" << EOF
|
||||||
<?php
|
<?php
|
||||||
define('DB_HOST', 'localhost');
|
define('DB_HOST', 'localhost');
|
||||||
define('DB_USER', 'root');
|
define('DB_USER', 'root');
|
||||||
@@ -518,32 +529,32 @@ define('OFFICE', '/usr/bin/libreoffice');
|
|||||||
?>
|
?>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
log_success "Конфигурация БД создана"
|
log_success "Конфигурация БД создана"
|
||||||
|
|
||||||
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/db_config.php"
|
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/db_config.php"
|
||||||
chmod 644 "$WEBROOT/db_config.php"
|
chmod 644 "$WEBROOT/db_config.php"
|
||||||
|
|
||||||
if sudo -u $WEBSERVER_USER test -r "$WEBROOT/db_config.php"; then
|
if sudo -u $WEBSERVER_USER test -r "$WEBROOT/db_config.php"; then
|
||||||
log_success "Веб-сервер может читать db_config.php"
|
log_success "Веб-сервер может читать db_config.php"
|
||||||
else
|
else
|
||||||
log_error "Веб-сервер НЕ МОЖЕТ читать db_config.php"
|
log_error "Веб-сервер НЕ МОЖЕТ читать db_config.php"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$WEBROOT/db_config.php" ]; then
|
if [ ! -f "$WEBROOT/db_config.php" ]; then
|
||||||
log_error "Не удалось создать файл db_config.php"
|
log_error "Не удалось создать файл db_config.php"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! sudo -u $WEBSERVER_USER test -r "$WEBROOT/db_config.php"; then
|
if ! sudo -u $WEBSERVER_USER test -r "$WEBROOT/db_config.php"; then
|
||||||
log_warning "Веб-сервер не может прочитать db_config.php, исправляем права..."
|
log_warning "Веб-сервер не может прочитать db_config.php, исправляем права..."
|
||||||
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/db_config.php"
|
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/db_config.php"
|
||||||
chmod 644 "$WEBROOT/db_config.php"
|
chmod 644 "$WEBROOT/db_config.php"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DOWNLOAD_URL="https://cloud.altcor.ru/setup/download.php"
|
DOWNLOAD_URL="https://cloud.altcor.ru/setup/download.php"
|
||||||
TEMP_DOWNLOAD="/tmp/web_files_$(date +%s)"
|
TEMP_DOWNLOAD="/tmp/web_files_$(date +%s)"
|
||||||
|
|
||||||
create_fallback_index() {
|
create_fallback_index() {
|
||||||
cat > "$WEBROOT/index.php" << 'EOF'
|
cat > "$WEBROOT/index.php" << 'EOF'
|
||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/db_config.php';
|
require_once __DIR__ . '/db_config.php';
|
||||||
@@ -612,11 +623,11 @@ if (file_exists(__DIR__ . '/db_config.php')) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo "✗ Файл db_config.php НЕ существует<br>";
|
echo "✗ Файл db_config.php НЕ существует<br>";
|
||||||
}
|
}
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
|
|
||||||
// Теперь пробуем подключиться к БД
|
// Теперь пробуем подключиться к БД
|
||||||
if (file_exists(__DIR__ . '/db_config.php') && is_readable(__DIR__ . '/db_config.php')) {
|
if (file_exists(__DIR__ . '/db_config.php') && is_readable(__DIR__ . '/db_config.php')) {
|
||||||
try {
|
try {
|
||||||
require_once __DIR__ . '/db_config.php';
|
require_once __DIR__ . '/db_config.php';
|
||||||
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET, DB_USER, DB_PASS);
|
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET, DB_USER, DB_PASS);
|
||||||
@@ -630,39 +641,39 @@ if (file_exists(__DIR__ . '/db_config.php') && is_readable(__DIR__ . '/db_config
|
|||||||
echo "<strong>Проблема с БД:</strong> " . htmlspecialchars($e->getMessage());
|
echo "<strong>Проблема с БД:</strong> " . htmlspecialchars($e->getMessage());
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo "<div class='status warning'>";
|
echo "<div class='status warning'>";
|
||||||
echo "<strong>Не удалось загрузить конфигурацию БД</strong>";
|
echo "<strong>Не удалось загрузить конфигурацию БД</strong>";
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
echo "</body>";
|
echo "</body>";
|
||||||
echo "</html>";
|
echo "</html>";
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
log_step "Загрузка файлов приложения..."
|
log_step "Загрузка файлов приложения..."
|
||||||
find "$WEBROOT" -type f ! -name "db_config.php" -delete 2>/dev/null || true
|
find "$WEBROOT" -type f ! -name "db_config.php" -delete 2>/dev/null || true
|
||||||
|
|
||||||
if curl -f -L --max-time 30 -o "$WEBROOT/index.php" "$DOWNLOAD_URL" 2>/dev/null; then
|
if curl -f -L --max-time 30 -o "$WEBROOT/index.php" "$DOWNLOAD_URL" 2>/dev/null; then
|
||||||
if ! head -n 1 "$WEBROOT/index.php" | grep -q "<?php" && ! grep -q "<?php" "$WEBROOT/index.php" 2>/dev/null; then
|
if ! head -n 1 "$WEBROOT/index.php" | grep -q "<?php" && ! grep -q "<?php" "$WEBROOT/index.php" 2>/dev/null; then
|
||||||
create_fallback_index
|
create_fallback_index
|
||||||
log_warning "Скачанный файл не является PHP-скриптом, создана резервная страница"
|
log_warning "Скачанный файл не является PHP-скриптом, создана резервная страница"
|
||||||
else
|
else
|
||||||
log_success "Файлы приложения загружены"
|
log_success "Файлы приложения загружены"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
create_fallback_index
|
create_fallback_index
|
||||||
log_warning "Не удалось загрузить файл с $DOWNLOAD_URL, создана резервная страница"
|
log_warning "Не удалось загрузить файл с $DOWNLOAD_URL, создана резервная страница"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_step "Настройка прав доступа к файлам..."
|
log_step "Настройка прав доступа к файлам..."
|
||||||
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/index.php"
|
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/index.php"
|
||||||
chmod 644 "$WEBROOT/db_config.php"
|
chmod 644 "$WEBROOT/db_config.php"
|
||||||
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/db_config.php"
|
chown $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT/db_config.php"
|
||||||
|
|
||||||
cat > "$WEBROOT/.htaccess" << 'EOF'
|
cat > "$WEBROOT/.htaccess" << 'EOF'
|
||||||
|
|
||||||
<Files "*.conf">
|
<Files "*.conf">
|
||||||
Require all denied
|
Require all denied
|
||||||
@@ -700,15 +711,15 @@ RewriteEngine On
|
|||||||
# RewriteRule ^(.*)$ index.php [QSA,L]
|
# RewriteRule ^(.*)$ index.php [QSA,L]
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chown -R $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT"
|
chown -R $WEBSERVER_USER:$WEBSERVER_USER "$WEBROOT"
|
||||||
chmod -R 755 "$WEBROOT"
|
chmod -R 755 "$WEBROOT"
|
||||||
chmod 644 "$WEBROOT/.htaccess" 2>/dev/null || true
|
chmod 644 "$WEBROOT/.htaccess" 2>/dev/null || true
|
||||||
chmod 600 "$WEBROOT/db_config.php"
|
chmod 600 "$WEBROOT/db_config.php"
|
||||||
log_success "Права доступа настроены"
|
log_success "Права доступа настроены"
|
||||||
|
|
||||||
log_step "Настройка базы данных MariaDB..."
|
log_step "Настройка базы данных MariaDB..."
|
||||||
|
|
||||||
if ! systemctl is-active --quiet mariadb; then
|
if ! systemctl is-active --quiet mariadb; then
|
||||||
log_error "MariaDB не запущен. Попытка запуска..."
|
log_error "MariaDB не запущен. Попытка запуска..."
|
||||||
systemctl start mariadb
|
systemctl start mariadb
|
||||||
sleep 3
|
sleep 3
|
||||||
@@ -717,11 +728,11 @@ if ! systemctl is-active --quiet mariadb; then
|
|||||||
log_error "Не удалось запустить MariaDB"
|
log_error "Не удалось запустить MariaDB"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_info "Выполнение базовой настройки безопасности MariaDB..."
|
log_info "Выполнение базовой настройки безопасности MariaDB..."
|
||||||
|
|
||||||
if mysql -u root -e "SELECT 1;" >/dev/null 2>&1; then
|
if mysql -u root -e "SELECT 1;" >/dev/null 2>&1; then
|
||||||
log_info "Первичная настройка MariaDB (подключение без пароля доступно)..."
|
log_info "Первичная настройка MariaDB (подключение без пароля доступно)..."
|
||||||
|
|
||||||
MYSQL_SECURE_SCRIPT="/tmp/mysql_secure_$(date +%s).sql"
|
MYSQL_SECURE_SCRIPT="/tmp/mysql_secure_$(date +%s).sql"
|
||||||
@@ -758,7 +769,7 @@ MYSQL_SCRIPT
|
|||||||
fi
|
fi
|
||||||
rm -f "$MYSQL_SECURE_SCRIPT"
|
rm -f "$MYSQL_SECURE_SCRIPT"
|
||||||
|
|
||||||
elif mysql -u root -p"$DB_PASSWORD" -e "SELECT 1;" >/dev/null 2>&1; then
|
elif mysql -u root -p"$DB_PASSWORD" -e "SELECT 1;" >/dev/null 2>&1; then
|
||||||
log_info "MariaDB уже настроен с текущим паролем..."
|
log_info "MariaDB уже настроен с текущим паролем..."
|
||||||
|
|
||||||
MYSQL_UPDATE_SCRIPT="/tmp/mysql_update_$(date +%s).sql"
|
MYSQL_UPDATE_SCRIPT="/tmp/mysql_update_$(date +%s).sql"
|
||||||
@@ -777,7 +788,7 @@ MYSQL_SCRIPT
|
|||||||
fi
|
fi
|
||||||
rm -f "$MYSQL_UPDATE_SCRIPT"
|
rm -f "$MYSQL_UPDATE_SCRIPT"
|
||||||
|
|
||||||
else
|
else
|
||||||
log_error "Не удалось подключиться к MariaDB ни с пустым паролем, ни с текущим паролем"
|
log_error "Не удалось подключиться к MariaDB ни с пустым паролем, ни с текущим паролем"
|
||||||
log_info "Попытка сброса пароля root в MariaDB..."
|
log_info "Попытка сброса пароля root в MariaDB..."
|
||||||
|
|
||||||
@@ -833,12 +844,12 @@ MYSQL_SCRIPT
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
rm -f "$MYSQL_RESET_SCRIPT"
|
rm -f "$MYSQL_RESET_SCRIPT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_success "База данных настроена"
|
log_success "База данных настроена"
|
||||||
|
|
||||||
log_step "Проверка конфигурации Apache..."
|
log_step "Проверка конфигурации Apache..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
if ! apache2ctl configtest >/dev/null 2>&1; then
|
if ! apache2ctl configtest >/dev/null 2>&1; then
|
||||||
log_error "Конфигурация Apache содержит ошибки."
|
log_error "Конфигурация Apache содержит ошибки."
|
||||||
exit 1
|
exit 1
|
||||||
@@ -846,59 +857,59 @@ if [ "$DISTRO_FAMILY" = "debian" ]; then
|
|||||||
|
|
||||||
WEBSERVER_SERVICE="apache2"
|
WEBSERVER_SERVICE="apache2"
|
||||||
|
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
if ! httpd -t >/dev/null 2>&1; then
|
if ! httpd -t >/dev/null 2>&1; then
|
||||||
log_error "Конфигурация Apache (httpd) содержит ошибки."
|
log_error "Конфигурация Apache (httpd) содержит ошибки."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WEBSERVER_SERVICE="httpd"
|
WEBSERVER_SERVICE="httpd"
|
||||||
fi
|
fi
|
||||||
log_success "Конфигурация Apache проверена"
|
log_success "Конфигурация Apache проверена"
|
||||||
|
|
||||||
log_step "Запуск и включение сервисов..."
|
log_step "Запуск и включение сервисов..."
|
||||||
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
systemctl restart apache2 >/dev/null 2>&1
|
systemctl restart apache2 >/dev/null 2>&1
|
||||||
systemctl enable apache2 >/dev/null 2>&1
|
systemctl enable apache2 >/dev/null 2>&1
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
systemctl restart httpd >/dev/null 2>&1
|
systemctl restart httpd >/dev/null 2>&1
|
||||||
systemctl enable httpd >/dev/null 2>&1
|
systemctl enable httpd >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
systemctl restart mariadb >/dev/null 2>&1
|
systemctl restart mariadb >/dev/null 2>&1
|
||||||
systemctl restart redis-server >/dev/null 2>&1 || systemctl restart redis >/dev/null 2>&1 || true
|
systemctl restart redis-server >/dev/null 2>&1 || systemctl restart redis >/dev/null 2>&1 || true
|
||||||
|
|
||||||
systemctl enable mariadb >/dev/null 2>&1
|
systemctl enable mariadb >/dev/null 2>&1
|
||||||
systemctl enable redis-server >/dev/null 2>&1 || systemctl enable redis >/dev/null 2>&1 || true
|
systemctl enable redis-server >/dev/null 2>&1 || systemctl enable redis >/dev/null 2>&1 || true
|
||||||
|
|
||||||
log_success "Все сервисы запущены и добавлены в автозагрузку"
|
log_success "Все сервисы запущены и добавлены в автозагрузку"
|
||||||
|
|
||||||
log_step "Финальная проверка работоспособности..."
|
log_step "Финальная проверка работоспособности..."
|
||||||
if ! systemctl is-active --quiet $WEBSERVER_SERVICE; then
|
if ! systemctl is-active --quiet $WEBSERVER_SERVICE; then
|
||||||
log_error "Веб-сервер не запущен"
|
log_error "Веб-сервер не запущен"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! systemctl is-active --quiet mariadb; then
|
if ! systemctl is-active --quiet mariadb; then
|
||||||
log_error "MariaDB не запущен"
|
log_error "MariaDB не запущен"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! php -r "echo phpversion();" >/dev/null 2>&1; then
|
if ! php -r "echo phpversion();" >/dev/null 2>&1; then
|
||||||
log_error "PHP не работает корректно"
|
log_error "PHP не работает корректно"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! mysql -u root -p"$DB_PASSWORD" -e "USE ALTCor; SELECT 1;" >/dev/null 2>&1; then
|
if ! mysql -u root -p"$DB_PASSWORD" -e "USE ALTCor; SELECT 1;" >/dev/null 2>&1; then
|
||||||
log_error "Не удается подключиться к базе данных ALTCor"
|
log_error "Не удается подключиться к базе данных ALTCor"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log_success "Все компоненты работают корректно"
|
log_success "Все компоненты работают корректно"
|
||||||
|
|
||||||
log_step "Сохранение учетных данных..."
|
log_step "Сохранение учетных данных..."
|
||||||
DB_CREDENTIALS_FILE="/root/.db_password"
|
DB_CREDENTIALS_FILE="/root/.db_password"
|
||||||
cat > "$DB_CREDENTIALS_FILE" << EOF
|
cat > "$DB_CREDENTIALS_FILE" << EOF
|
||||||
# Учетные данные базы данных ALTCor
|
# Учетные данные базы данных ALTCor
|
||||||
|
|
||||||
DB_HOST=localhost
|
DB_HOST=localhost
|
||||||
@@ -907,30 +918,88 @@ DB_PASSWORD=$DB_PASSWORD
|
|||||||
DB_NAME=ALTCor
|
DB_NAME=ALTCor
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod 600 "$DB_CREDENTIALS_FILE"
|
chmod 600 "$DB_CREDENTIALS_FILE"
|
||||||
log_info "Учетные данные сохранены в $DB_CREDENTIALS_FILE"
|
log_info "Учетные данные сохранены в $DB_CREDENTIALS_FILE"
|
||||||
|
|
||||||
IP_ADDR=$(hostname -I | awk '{print $1}')
|
IP_ADDR=$(hostname -I | awk '{print $1}')
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_success "Установка Altcor успешно завершена."
|
if [ "$REINSTALL" = true ]; then
|
||||||
echo ""
|
log_success "Переустановка Altcor успешно завершена."
|
||||||
echo " Доступ к сайту:"
|
else
|
||||||
echo " • http://localhost/"
|
log_success "Установка Altcor успешно завершена."
|
||||||
echo " • http://$IP_ADDR/"
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
echo " Доступ к БД:"
|
echo " Доступ к сайту:"
|
||||||
echo " • Хост: localhost"
|
echo " • http://localhost/"
|
||||||
echo " • Логин: root"
|
echo " • http://$IP_ADDR/"
|
||||||
echo " • Пароль: $DB_PASSWORD"
|
echo ""
|
||||||
echo " • База данных: ALTCor"
|
echo " Доступ к БД:"
|
||||||
echo ""
|
echo " • Хост: localhost"
|
||||||
echo " Расположение файлов:"
|
echo " • Логин: root"
|
||||||
echo " • Веб-корень: $WEBROOT"
|
echo " • Пароль: $DB_PASSWORD"
|
||||||
echo " • Конфигурация БД: $WEBROOT/db_config.php"
|
echo " • База данных: ALTCor"
|
||||||
echo " • Логи Apache: /var/log/apache2/ или /var/log/httpd/"
|
echo ""
|
||||||
echo ""
|
echo " Расположение файлов:"
|
||||||
echo " Дополнительная информация:"
|
echo " • Веб-корень: $WEBROOT"
|
||||||
echo " • Учетные данные БД: $DB_CREDENTIALS_FILE"
|
echo " • Конфигурация БД: $WEBROOT/db_config.php"
|
||||||
echo " • Для удаления: ./install.sh -u"
|
echo " • Логи Apache: /var/log/apache2/ или /var/log/httpd/"
|
||||||
echo ""
|
echo ""
|
||||||
|
echo " Дополнительная информация:"
|
||||||
|
echo " • Учетные данные БД: $DB_CREDENTIALS_FILE"
|
||||||
|
echo " • Для удаления: ./install.sh -u"
|
||||||
|
echo " • Для переустановки: ./install.sh -r"
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
log_error "Запустите этот скрипт вместе с sudo."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /etc/os-release ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
DISTRO="$ID"
|
||||||
|
FAMILY="$ID_LIKE"
|
||||||
|
else
|
||||||
|
log_error "Не удалось определить дистрибутив."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if echo "$DISTRO $FAMILY" | grep -qi "debian\|ubuntu"; then
|
||||||
|
PKG_MANAGER="apt"
|
||||||
|
DISTRO_FAMILY="debian"
|
||||||
|
elif echo "$DISTRO $FAMILY" | grep -qi "rhel\|centos\|fedora"; then
|
||||||
|
PKG_MANAGER="dnf"
|
||||||
|
DISTRO_FAMILY="rhel"
|
||||||
|
if ! command -v dnf >/dev/null 2>&1; then
|
||||||
|
PKG_MANAGER="yum"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log_error "Ваш дистрибутив '$DISTRO' не поддерживается. Поддерживаются: Debian/Ubuntu, CentOS/RHEL/Fedora."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$UNINSTALL" = true ]; then
|
||||||
|
full_uninstall
|
||||||
|
elif [ "$REINSTALL" = true ]; then
|
||||||
|
echo ""
|
||||||
|
log_step "Начинаем переустановку Altcor..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
full_uninstall
|
||||||
|
|
||||||
|
proceed_with_installation
|
||||||
|
else
|
||||||
|
check_result=0
|
||||||
|
check_existing_installation || check_result=$?
|
||||||
|
|
||||||
|
if [ $check_result -eq 1 ]; then
|
||||||
|
if [ "$REINSTALL" = true ]; then
|
||||||
|
full_uninstall
|
||||||
|
fi
|
||||||
|
proceed_with_installation
|
||||||
|
elif [ $check_result -eq 0 ]; then
|
||||||
|
proceed_with_installation
|
||||||
|
fi
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user