Фикс установки Apache на RHEL системах
This commit is contained in:
141
install.sh
141
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"
|
||||
|
||||
# Исправленная конфигурация 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
|
||||
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
|
||||
# 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
|
||||
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
|
||||
# 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
|
||||
<IfModule !mod_php.c>
|
||||
LoadModule php_module modules/libphp.so
|
||||
</IfModule>
|
||||
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
|
||||
# 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
|
||||
|
||||
# Основные настройки
|
||||
<Directory "/var/www/html">
|
||||
Options -Indexes +FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
|
||||
# Настройки сжатия
|
||||
<IfModule mod_deflate.c>
|
||||
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
|
||||
</IfModule>
|
||||
|
||||
# Кэширование
|
||||
<IfModule mod_expires.c>
|
||||
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"
|
||||
</IfModule>
|
||||
|
||||
# Заголовки безопасности
|
||||
<IfModule mod_headers.c>
|
||||
Header always set X-Content-Type-Options nosniff
|
||||
Header always set X-Frame-Options DENY
|
||||
Header always set X-XSS-Protection "1; mode=block"
|
||||
</IfModule>
|
||||
</Directory>
|
||||
|
||||
# Запрет доступа к конфигурационным файлам
|
||||
<Files "*.conf">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
<Files ".htaccess">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
<Files ".env">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
# Обработка PHP файлов
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
@@ -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" <<EOF
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot $WEBROOT
|
||||
@@ -499,6 +611,8 @@ EOF
|
||||
CustomLog \${APACHE_LOG_DIR}/access.log combined
|
||||
</VirtualHost>
|
||||
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) содержит ошибки."
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user