From 64efc4879eaaab116e4257395d2813ecd04a5792 Mon Sep 17 00:00:00 2001 From: hosh1 Date: Tue, 12 Aug 2025 11:17:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=20=D0=BA=D0=BE=D0=BD=D1=84?= =?UTF-8?q?=D0=B8=D0=B3=D0=B0=D0=BC=D0=B8=20apache2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 77 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 17 deletions(-) diff --git a/install.sh b/install.sh index 35a1c10..ed049d8 100644 --- a/install.sh +++ b/install.sh @@ -41,6 +41,53 @@ generate_password() { openssl rand -base64 32 | tr -d "=+/" | cut -c1-16 } +cleanup_apache_config() { + log_info "Очистка конфигурации Apache от дубликатов..." + + if [ "$DISTRO_FAMILY" = "debian" ]; then + # Удаляем дублирующиеся записи Listen из ports.conf + if [ -f /etc/apache2/ports.conf ]; then + # Создаем резервную копию + cp /etc/apache2/ports.conf /etc/apache2/ports.conf.backup.$(date +%Y%m%d_%H%M%S) + + # Удаляем дубликаты Listen :80 + awk ' + /^Listen.*:80$/ { + if (!seen) { + seen = 1 + print "Listen *:80" + } + next + } + { print } + ' /etc/apache2/ports.conf > /etc/apache2/ports.conf.tmp + + mv /etc/apache2/ports.conf.tmp /etc/apache2/ports.conf + fi + + elif [ "$DISTRO_FAMILY" = "rhel" ]; then + HTTPD_CONF="/etc/httpd/conf/httpd.conf" + if [ -f "$HTTPD_CONF" ]; then + # Создаем резервную копию + cp "$HTTPD_CONF" "${HTTPD_CONF}.backup.$(date +%Y%m%d_%H%M%S)" + + # Удаляем дубликаты Listen :80 + awk ' + /^Listen.*:80$/ { + if (!seen) { + seen = 1 + print "Listen *:80" + } + next + } + { print } + ' "$HTTPD_CONF" > "${HTTPD_CONF}.tmp" + + mv "${HTTPD_CONF}.tmp" "$HTTPD_CONF" + fi + fi +} + check_component() { local component=$1 local command_check=$2 @@ -165,10 +212,6 @@ check_existing_installation() { components_installed=true fi - echo "" - echo "=== РЕЗУЛЬТАТЫ ПРОВЕРКИ ===" - echo "" - if [ "$altcor_installed" = true ]; then echo -e "${GREEN}✓ ALTCOR УЖЕ УСТАНОВЛЕН${NC}" echo "" @@ -728,25 +771,25 @@ EOF fi log_success "Конфигурация виртуального хоста создана" + cleanup_apache_config log_step "Настройка Apache для прослушивания всех интерфейсов..." if [ "$DISTRO_FAMILY" = "debian" ]; then - if ! grep -q "Listen 0.0.0.0:80" /etc/apache2/ports.conf && ! grep -q "Listen \*:80" /etc/apache2/ports.conf; then - if grep -q "Listen 127.0.0.1:80" /etc/apache2/ports.conf; then - sed -i 's/Listen 127.0.0.1:80/Listen *:80/' /etc/apache2/ports.conf - fi - if ! grep -q "Listen.*:80" /etc/apache2/ports.conf; then - echo "Listen *:80" >> /etc/apache2/ports.conf - fi + if ! grep -q "Listen.*:80" /etc/apache2/ports.conf; then + echo "Listen *:80" >> /etc/apache2/ports.conf + elif grep -q "Listen 127.0.0.1:80" /etc/apache2/ports.conf && ! grep -q "Listen \*:80\|Listen 0.0.0.0:80" /etc/apache2/ports.conf; then + sed -i 's/Listen 127.0.0.1:80/Listen *:80/' /etc/apache2/ports.conf fi + sed -i '/^Listen.*:80$/!b; N; /^\(.*\)\nListen.*:80$/{ s//\1/; ba }' /etc/apache2/ports.conf + elif [ "$DISTRO_FAMILY" = "rhel" ]; then HTTPD_CONF="/etc/httpd/conf/httpd.conf" - if ! grep -q "Listen 0.0.0.0:80" "$HTTPD_CONF" && ! grep -q "Listen \*:80" "$HTTPD_CONF"; then - if grep -q "Listen 127.0.0.1:80" "$HTTPD_CONF"; then - sed -i 's/Listen 127.0.0.1:80/Listen *:80/' "$HTTPD_CONF" - elif ! grep -q "Listen.*:80" "$HTTPD_CONF"; then - echo "Listen *:80" >> "$HTTPD_CONF" - fi + + if ! grep -q "Listen.*:80" "$HTTPD_CONF"; then + echo "Listen *:80" >> "$HTTPD_CONF" + elif grep -q "Listen 127.0.0.1:80" "$HTTPD_CONF" && ! grep -q "Listen \*:80\|Listen 0.0.0.0:80" "$HTTPD_CONF"; then + sed -i 's/Listen 127.0.0.1:80/Listen *:80/' "$HTTPD_CONF" fi + awk '!seen[$0] || !/^Listen.*:80$/{seen[$0]++; print}' "$HTTPD_CONF" > "$HTTPD_CONF.tmp" && mv "$HTTPD_CONF.tmp" "$HTTPD_CONF" fi log_success "Apache настроен для прослушивания всех интерфейсов"