diff --git a/install.sh b/install.sh
index ccbb117..71216b7 100644
--- a/install.sh
+++ b/install.sh
@@ -48,9 +48,14 @@ cleanup_apache_config() {
if [ -f /etc/apache2/ports.conf ]; then
cp /etc/apache2/ports.conf /etc/apache2/ports.conf.backup.$(date +%Y%m%d_%H%M%S)
- grep -v "^Listen\s\+.*80$" /etc/apache2/ports.conf > /etc/apache2/ports.conf.tmp || true
- echo "Listen *:80" >> /etc/apache2/ports.conf.tmp
- mv /etc/apache2/ports.conf.tmp /etc/apache2/ports.conf
+ # Удаляем все Listen директивы для порта 80
+ grep -v "^Listen\s\+.*:80$" /etc/apache2/ports.conf > /etc/apache2/ports.conf.tmp || true
+ grep -v "^Listen\s\+80$" /etc/apache2/ports.conf.tmp > /etc/apache2/ports.conf.tmp2 || true
+
+ # Добавляем одну Listen директиву
+ echo "Listen *:80" >> /etc/apache2/ports.conf.tmp2
+ mv /etc/apache2/ports.conf.tmp2 /etc/apache2/ports.conf
+ rm -f /etc/apache2/ports.conf.tmp
fi
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
@@ -58,11 +63,49 @@ cleanup_apache_config() {
if [ -f "$HTTPD_CONF" ]; then
cp "$HTTPD_CONF" "${HTTPD_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
- grep -v "^Listen.*:80" "$HTTPD_CONF" > "${HTTPD_CONF}.tmp" || true
- echo "Listen *:80" >> "${HTTPD_CONF}.tmp"
- mv "${HTTPD_CONF}.tmp" "$HTTPD_CONF"
+ # Удаляем все Listen директивы для порта 80
+ grep -v "^Listen.*:80$" "$HTTPD_CONF" > "${HTTPD_CONF}.tmp" || true
+ grep -v "^Listen 80$" "${HTTPD_CONF}.tmp" > "${HTTPD_CONF}.tmp2" || true
+
+ # Добавляем одну Listen директиву
+ echo "Listen 80" >> "${HTTPD_CONF}.tmp2"
+ mv "${HTTPD_CONF}.tmp2" "$HTTPD_CONF"
+ rm -f "${HTTPD_CONF}.tmp"
+ fi
+
+ # Также очищаем PHP-FPM конфигурацию от дублирующихся модулей
+ if [ -f "/etc/httpd/conf.d/php-fpm.conf" ]; then
+ log_info "Очистка PHP-FPM конфигурации от LoadModule директив..."
+
+ if [ "$DISTRO" = "fedora" ]; then
+ cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
+
+ SetHandler "proxy:fcgi://127.0.0.1:9000"
+
+
+DirectoryIndex index.php index.html index.htm
+
+
+ Require all granted
+
+EOF
+ else
+ cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
+
+ SetHandler "proxy:unix:/var/opt/remi/php83/run/php-fpm/www.sock|fcgi://localhost"
+
+
+DirectoryIndex index.php index.html index.htm
+
+
+ Require all granted
+
+EOF
+ fi
fi
fi
+
+ log_success "Конфигурация Apache очищена от дубликатов"
}
check_component() {
@@ -581,21 +624,20 @@ proceed_with_installation() {
APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
WEBSERVER_USER="www-data"
-elif [ "$DISTRO_FAMILY" = "rhel" ]; then
- WEBROOT="/var/www/html"
- APACHE_CONF="/etc/httpd/conf.d/000-default.conf"
- WEBSERVER_USER="apache"
-
- rm -f /etc/httpd/conf.d/php.conf
-
- log_info "Настройка PHP-FPM для Apache..."
-
- if [ "$DISTRO" = "fedora" ]; then
- cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
-LoadModule proxy_module modules/mod_proxy.so
-LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
-LoadModule rewrite_module modules/mod_rewrite.so
-
+ elif [ "$DISTRO_FAMILY" = "rhel" ]; then
+ WEBROOT="/var/www/html"
+ APACHE_CONF="/etc/httpd/conf.d/000-default.conf"
+ WEBSERVER_USER="apache"
+
+ # Очищаем старые конфигурации
+ rm -f /etc/httpd/conf.d/php.conf
+ rm -f /etc/httpd/conf.d/php-fpm.conf
+
+ log_info "Настройка PHP-FPM для Apache..."
+
+ if [ "$DISTRO" = "fedora" ]; then
+ # Для Fedora используем стандартный PHP-FPM без LoadModule директив
+ cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
SetHandler "proxy:fcgi://127.0.0.1:9000"
@@ -606,28 +648,27 @@ DirectoryIndex index.php index.html index.htm
Require all granted
EOF
-
- if [ -f "/etc/php-fpm.d/www.conf" ]; then
- PHP_FPM_CONF="/etc/php-fpm.d/www.conf"
- cp "$PHP_FPM_CONF" "${PHP_FPM_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
+ # Настраиваем стандартный PHP-FPM для Fedora
+ if [ -f "/etc/php-fpm.d/www.conf" ]; then
+ PHP_FPM_CONF="/etc/php-fpm.d/www.conf"
+
+ cp "$PHP_FPM_CONF" "${PHP_FPM_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
+
+ sed -i 's/^user = .*/user = apache/' "$PHP_FPM_CONF"
+ sed -i 's/^group = .*/group = apache/' "$PHP_FPM_CONF"
+ sed -i 's/^listen = .*/listen = 127.0.0.1:9000/' "$PHP_FPM_CONF"
+
+ log_info "PHP-FPM пул настроен для Fedora"
+
+ # Запускаем и включаем PHP-FPM
+ systemctl enable php-fpm >/dev/null 2>&1
+ systemctl start php-fpm >/dev/null 2>&1
+ fi
- sed -i 's/^user = .*/user = apache/' "$PHP_FPM_CONF"
- sed -i 's/^group = .*/group = apache/' "$PHP_FPM_CONF"
- sed -i 's/^listen = .*/listen = 127.0.0.1:9000/' "$PHP_FPM_CONF"
-
- log_info "PHP-FPM пул настроен для Fedora"
-
- systemctl enable php-fpm >/dev/null 2>&1
- systemctl start php-fpm >/dev/null 2>&1
- fi
-
- else
- cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
-LoadModule proxy_module modules/mod_proxy.so
-LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
-LoadModule rewrite_module modules/mod_rewrite.so
-
+ else
+ # Для CentOS/RHEL/AlmaLinux с Remi репозиторием
+ cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
SetHandler "proxy:unix:/var/opt/remi/php83/run/php-fpm/www.sock|fcgi://localhost"
@@ -638,31 +679,54 @@ DirectoryIndex index.php index.html index.htm
Require all granted
EOF
-
- if [ -f "/etc/opt/remi/php83/php-fpm.d/www.conf" ]; then
- PHP_FPM_CONF="/etc/opt/remi/php83/php-fpm.d/www.conf"
- cp "$PHP_FPM_CONF" "${PHP_FPM_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
+ if [ -f "/etc/opt/remi/php83/php-fpm.d/www.conf" ]; then
+ PHP_FPM_CONF="/etc/opt/remi/php83/php-fpm.d/www.conf"
+
+ cp "$PHP_FPM_CONF" "${PHP_FPM_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
+
+ sed -i 's/^user = .*/user = apache/' "$PHP_FPM_CONF"
+ sed -i 's/^group = .*/group = apache/' "$PHP_FPM_CONF"
+
+ sed -i 's/^listen = .*/listen = \/var\/opt\/remi\/php83\/run\/php-fpm\/www.sock/' "$PHP_FPM_CONF"
+ sed -i 's/^;listen.owner = .*/listen.owner = apache/' "$PHP_FPM_CONF"
+ sed -i 's/^;listen.group = .*/listen.group = apache/' "$PHP_FPM_CONF"
+ sed -i 's/^;listen.mode = .*/listen.mode = 0660/' "$PHP_FPM_CONF"
+
+ log_info "PHP-FPM пул настроен для RHEL/CentOS"
+ fi
- sed -i 's/^user = .*/user = apache/' "$PHP_FPM_CONF"
- sed -i 's/^group = .*/group = apache/' "$PHP_FPM_CONF"
-
- sed -i 's/^listen = .*/listen = \/var\/opt\/remi\/php83\/run\/php-fpm\/www.sock/' "$PHP_FPM_CONF"
- sed -i 's/^;listen.owner = .*/listen.owner = apache/' "$PHP_FPM_CONF"
- sed -i 's/^;listen.group = .*/listen.group = apache/' "$PHP_FPM_CONF"
- sed -i 's/^;listen.mode = .*/listen.mode = 0660/' "$PHP_FPM_CONF"
-
- log_info "PHP-FPM пул настроен для RHEL/CentOS"
+ mkdir -p /var/opt/remi/php83/run/php-fpm
+ chown apache:apache /var/opt/remi/php83/run/php-fpm
fi
- mkdir -p /var/opt/remi/php83/run/php-fpm
- chown apache:apache /var/opt/remi/php83/run/php-fpm
+ # Очищаем дублирующиеся Listen директивы
+ HTTPD_CONF="/etc/httpd/conf/httpd.conf"
+ log_step "Очистка дублирующихся Listen директив..."
+
+ # Создаем резервную копию
+ cp "$HTTPD_CONF" "${HTTPD_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
+
+ # Удаляем все существующие Listen директивы для порта 80
+ sed -i '/^Listen.*:80$/d' "$HTTPD_CONF"
+ sed -i '/^Listen 80$/d' "$HTTPD_CONF"
+
+ # Добавляем только одну Listen директиву в конец файла
+ if ! grep -q "^Listen 80$" "$HTTPD_CONF"; then
+ echo "Listen 80" >> "$HTTPD_CONF"
+ fi
+
+ log_success "Listen директивы очищены"
fi
-fi
- log_success "Модули Apache настроены"
+
+ # mkdir -p /var/opt/remi/php83/run/php-fpm
+ # chown apache:apache /var/opt/remi/php83/run/php-fpm
+ # fi
+ # fi
+ log_success "Модули Apache настроены"
- log_step "Создание конфигурации виртуального хоста..."
-mkdir -p "$WEBROOT"
+ log_step "Создание конфигурации виртуального хоста..."
+ mkdir -p "$WEBROOT"
SERVER_IP=$(hostname -I | awk '{print $1}')
@@ -1169,19 +1233,22 @@ MYSQL_SCRIPT
log_step "Проверка конфигурации Apache..."
if [ "$DISTRO_FAMILY" = "debian" ]; then
- if ! apache2ctl configtest >/dev/null 2>&1; then
- log_error "Конфигурация Apache содержит ошибки."
+ if apache2ctl configtest >/dev/null 2>&1; then
+ log_success "Конфигурация Apache корректна"
+ else
+ log_error "Ошибка в конфигурации Apache"
apache2ctl configtest
- exit 1
+ return 1
fi
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
- if ! httpd -t >/dev/null 2>&1; then
- log_error "Конфигурация Apache (httpd) содержит ошибки."
+ if httpd -t >/dev/null 2>&1; then
+ log_success "Конфигурация Apache корректна"
+ else
+ log_error "Ошибка в конфигурации Apache"
httpd -t
- exit 1
+ return 1
fi
fi
- log_success "Конфигурация Apache проверена"
log_step "Запуск и включение сервисов..."