Фикс установки Apache на RHEL системах
This commit is contained in:
147
install.sh
147
install.sh
@@ -434,13 +434,123 @@ proceed_with_installation() {
|
|||||||
|
|
||||||
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/altcor.conf" # Изменено имя файла
|
||||||
WEBSERVER_USER="apache"
|
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 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$>
|
<FilesMatch \.php$>
|
||||||
SetHandler application/x-httpd-php
|
SetHandler application/x-httpd-php
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
@@ -449,8 +559,10 @@ EOF
|
|||||||
log_success "Модули Apache настроены"
|
log_success "Модули Apache настроены"
|
||||||
|
|
||||||
log_step "Создание конфигурации виртуального хоста..."
|
log_step "Создание конфигурации виртуального хоста..."
|
||||||
mkdir -p "$WEBROOT"
|
mkdir -p "$WEBROOT"
|
||||||
|
|
||||||
|
# Для Debian/Ubuntu создаем стандартный VirtualHost
|
||||||
|
if [ "$DISTRO_FAMILY" = "debian" ]; then
|
||||||
cat > "$APACHE_CONF" <<EOF
|
cat > "$APACHE_CONF" <<EOF
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
DocumentRoot $WEBROOT
|
DocumentRoot $WEBROOT
|
||||||
@@ -499,6 +611,8 @@ EOF
|
|||||||
CustomLog \${APACHE_LOG_DIR}/access.log combined
|
CustomLog \${APACHE_LOG_DIR}/access.log combined
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
log_success "Конфигурация виртуального хоста создана"
|
log_success "Конфигурация виртуального хоста создана"
|
||||||
|
|
||||||
log_step "Настройка PHP.ini..."
|
log_step "Настройка PHP.ini..."
|
||||||
@@ -879,15 +993,34 @@ MYSQL_SCRIPT
|
|||||||
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 содержит ошибки."
|
||||||
|
apache2ctl configtest # Показываем ошибки для диагностики
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
WEBSERVER_SERVICE="apache2"
|
WEBSERVER_SERVICE="apache2"
|
||||||
|
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
|
# Для Rocky Linux/RHEL сначала проверим синтаксис конфигурации
|
||||||
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
|
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
|
fi
|
||||||
|
|
||||||
WEBSERVER_SERVICE="httpd"
|
WEBSERVER_SERVICE="httpd"
|
||||||
|
|||||||
Reference in New Issue
Block a user