diff --git a/install.sh b/install.sh index 3063049..62d77e8 100644 --- a/install.sh +++ b/install.sh @@ -434,13 +434,123 @@ proceed_with_installation() { elif [ "$DISTRO_FAMILY" = "rhel" ]; then WEBROOT="/var/www/html" - APACHE_CONF="/etc/httpd/conf.d/000-default.conf" + APACHE_CONF="/etc/httpd/conf.d/altcor.conf" # Изменено имя файла WEBSERVER_USER="apache" - cat > "/etc/httpd/conf.d/php.conf" << 'EOF' + # Исправленная конфигурация PHP для RHEL + if [ "$DISTRO" = "fedora" ]; then + # Для Fedora + cat > "/etc/httpd/conf.d/php.conf" << 'EOF' +# PHP configuration for Apache LoadModule php_module modules/libphp.so -LoadModule rewrite_module modules/mod_rewrite.so + + SetHandler application/x-httpd-php + + +# Enable useful modules +LoadModule rewrite_module modules/mod_rewrite.so +LoadModule headers_module modules/mod_headers.so +LoadModule expires_module modules/mod_expires.so +LoadModule deflate_module modules/mod_deflate.so +EOF + else + # Для Rocky Linux/CentOS/RHEL с Remi + # Проверяем доступные PHP модули + if [ -f "/etc/opt/remi/php83/php.ini" ]; then + # Remi PHP 8.3 + cat > "/etc/httpd/conf.d/php.conf" << 'EOF' +# PHP 8.3 from Remi repository +LoadModule php_module modules/libphp83.so + + + SetHandler application/x-httpd-php + + +# Enable useful modules +LoadModule rewrite_module modules/mod_rewrite.so +LoadModule headers_module modules/mod_headers.so +LoadModule expires_module modules/mod_expires.so +LoadModule deflate_module modules/mod_deflate.so +EOF + else + # Стандартный PHP + cat > "/etc/httpd/conf.d/php.conf" << 'EOF' +# Standard PHP configuration + + LoadModule php_module modules/libphp.so + + + + SetHandler application/x-httpd-php + + +# Enable useful modules +LoadModule rewrite_module modules/mod_rewrite.so +LoadModule headers_module modules/mod_headers.so +LoadModule expires_module modules/mod_expires.so +LoadModule deflate_module modules/mod_deflate.so +EOF + fi + fi + + cat > "/etc/httpd/conf.d/altcor.conf" << 'EOF' +# Altcor main configuration + +# Отключаем ServerTokens и ServerSignature для безопасности +ServerTokens Prod +ServerSignature Off + +# Основные настройки + + Options -Indexes +FollowSymLinks + AllowOverride All + Require all granted + + # Настройки сжатия + + SetOutputFilter DEFLATE + SetEnvIfNoCase Request_URI \ + \.(?:gif|jpe?g|png)$ no-gzip dont-vary + SetEnvIfNoCase Request_URI \ + \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary + + + # Кэширование + + ExpiresActive On + ExpiresByType image/jpg "access plus 1 month" + ExpiresByType image/jpeg "access plus 1 month" + ExpiresByType image/gif "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + ExpiresByType text/css "access plus 1 month" + ExpiresByType application/javascript "access plus 1 month" + ExpiresByType text/javascript "access plus 1 month" + + + # Заголовки безопасности + + Header always set X-Content-Type-Options nosniff + Header always set X-Frame-Options DENY + Header always set X-XSS-Protection "1; mode=block" + + + +# Запрет доступа к конфигурационным файлам + + Require all denied + + + + Require all denied + + + + Require all denied + + +# Обработка PHP файлов SetHandler application/x-httpd-php @@ -449,8 +559,10 @@ EOF log_success "Модули Apache настроены" log_step "Создание конфигурации виртуального хоста..." - mkdir -p "$WEBROOT" +mkdir -p "$WEBROOT" +# Для Debian/Ubuntu создаем стандартный VirtualHost +if [ "$DISTRO_FAMILY" = "debian" ]; then cat > "$APACHE_CONF" < DocumentRoot $WEBROOT @@ -499,6 +611,8 @@ EOF CustomLog \${APACHE_LOG_DIR}/access.log combined EOF + fi + log_success "Конфигурация виртуального хоста создана" log_step "Настройка PHP.ini..." @@ -879,15 +993,34 @@ MYSQL_SCRIPT if [ "$DISTRO_FAMILY" = "debian" ]; then if ! apache2ctl configtest >/dev/null 2>&1; then log_error "Конфигурация Apache содержит ошибки." + apache2ctl configtest # Показываем ошибки для диагностики exit 1 fi WEBSERVER_SERVICE="apache2" - + elif [ "$DISTRO_FAMILY" = "rhel" ]; then + # Для Rocky Linux/RHEL сначала проверим синтаксис конфигурации if ! httpd -t >/dev/null 2>&1; then - log_error "Конфигурация Apache (httpd) содержит ошибки." - exit 1 + log_error "Конфигурация Apache (httpd) содержит ошибки:" + echo "" + httpd -t # Показываем детали ошибок + echo "" + log_info "Попытка исправления..." + + # Проверяем наличие основных модулей + if ! httpd -M 2>/dev/null | grep -q "rewrite_module"; then + echo "LoadModule rewrite_module modules/mod_rewrite.so" >> /etc/httpd/conf.d/altcor.conf + fi + + # Повторная проверка + if ! httpd -t >/dev/null 2>&1; then + log_error "Не удалось исправить конфигурацию Apache:" + httpd -t + exit 1 + else + log_success "Конфигурация исправлена" + fi fi WEBSERVER_SERVICE="httpd"