Фикс php-fpm
This commit is contained in:
115
install.sh
115
install.sh
@@ -48,9 +48,14 @@ cleanup_apache_config() {
|
|||||||
if [ -f /etc/apache2/ports.conf ]; then
|
if [ -f /etc/apache2/ports.conf ]; then
|
||||||
cp /etc/apache2/ports.conf /etc/apache2/ports.conf.backup.$(date +%Y%m%d_%H%M%S)
|
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
|
# Удаляем все Listen директивы для порта 80
|
||||||
echo "Listen *:80" >> /etc/apache2/ports.conf.tmp
|
grep -v "^Listen\s\+.*:80$" /etc/apache2/ports.conf > /etc/apache2/ports.conf.tmp || true
|
||||||
mv /etc/apache2/ports.conf.tmp /etc/apache2/ports.conf
|
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
|
fi
|
||||||
|
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
@@ -58,11 +63,49 @@ cleanup_apache_config() {
|
|||||||
if [ -f "$HTTPD_CONF" ]; then
|
if [ -f "$HTTPD_CONF" ]; then
|
||||||
cp "$HTTPD_CONF" "${HTTPD_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
|
cp "$HTTPD_CONF" "${HTTPD_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
|
||||||
|
|
||||||
grep -v "^Listen.*:80" "$HTTPD_CONF" > "${HTTPD_CONF}.tmp" || true
|
# Удаляем все Listen директивы для порта 80
|
||||||
echo "Listen *:80" >> "${HTTPD_CONF}.tmp"
|
grep -v "^Listen.*:80$" "$HTTPD_CONF" > "${HTTPD_CONF}.tmp" || true
|
||||||
mv "${HTTPD_CONF}.tmp" "$HTTPD_CONF"
|
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'
|
||||||
|
<FilesMatch \.php$>
|
||||||
|
SetHandler "proxy:fcgi://127.0.0.1:9000"
|
||||||
|
</FilesMatch>
|
||||||
|
|
||||||
|
DirectoryIndex index.php index.html index.htm
|
||||||
|
|
||||||
|
<Files "*.php">
|
||||||
|
Require all granted
|
||||||
|
</Files>
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
|
||||||
|
<FilesMatch \.php$>
|
||||||
|
SetHandler "proxy:unix:/var/opt/remi/php83/run/php-fpm/www.sock|fcgi://localhost"
|
||||||
|
</FilesMatch>
|
||||||
|
|
||||||
|
DirectoryIndex index.php index.html index.htm
|
||||||
|
|
||||||
|
<Files "*.php">
|
||||||
|
Require all granted
|
||||||
|
</Files>
|
||||||
|
EOF
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_success "Конфигурация Apache очищена от дубликатов"
|
||||||
}
|
}
|
||||||
|
|
||||||
check_component() {
|
check_component() {
|
||||||
@@ -581,21 +624,20 @@ proceed_with_installation() {
|
|||||||
APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
|
APACHE_CONF="/etc/apache2/sites-available/000-default.conf"
|
||||||
WEBSERVER_USER="www-data"
|
WEBSERVER_USER="www-data"
|
||||||
|
|
||||||
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/000-default.conf"
|
||||||
WEBSERVER_USER="apache"
|
WEBSERVER_USER="apache"
|
||||||
|
|
||||||
|
# Очищаем старые конфигурации
|
||||||
rm -f /etc/httpd/conf.d/php.conf
|
rm -f /etc/httpd/conf.d/php.conf
|
||||||
|
rm -f /etc/httpd/conf.d/php-fpm.conf
|
||||||
|
|
||||||
log_info "Настройка PHP-FPM для Apache..."
|
log_info "Настройка PHP-FPM для Apache..."
|
||||||
|
|
||||||
if [ "$DISTRO" = "fedora" ]; then
|
if [ "$DISTRO" = "fedora" ]; then
|
||||||
|
# Для Fedora используем стандартный PHP-FPM без LoadModule директив
|
||||||
cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
|
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
|
|
||||||
|
|
||||||
<FilesMatch \.php$>
|
<FilesMatch \.php$>
|
||||||
SetHandler "proxy:fcgi://127.0.0.1:9000"
|
SetHandler "proxy:fcgi://127.0.0.1:9000"
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
@@ -607,6 +649,7 @@ DirectoryIndex index.php index.html index.htm
|
|||||||
</Files>
|
</Files>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Настраиваем стандартный PHP-FPM для Fedora
|
||||||
if [ -f "/etc/php-fpm.d/www.conf" ]; then
|
if [ -f "/etc/php-fpm.d/www.conf" ]; then
|
||||||
PHP_FPM_CONF="/etc/php-fpm.d/www.conf"
|
PHP_FPM_CONF="/etc/php-fpm.d/www.conf"
|
||||||
|
|
||||||
@@ -618,16 +661,14 @@ EOF
|
|||||||
|
|
||||||
log_info "PHP-FPM пул настроен для Fedora"
|
log_info "PHP-FPM пул настроен для Fedora"
|
||||||
|
|
||||||
|
# Запускаем и включаем PHP-FPM
|
||||||
systemctl enable php-fpm >/dev/null 2>&1
|
systemctl enable php-fpm >/dev/null 2>&1
|
||||||
systemctl start php-fpm >/dev/null 2>&1
|
systemctl start php-fpm >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
# Для CentOS/RHEL/AlmaLinux с Remi репозиторием
|
||||||
cat > "/etc/httpd/conf.d/php-fpm.conf" << 'EOF'
|
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
|
|
||||||
|
|
||||||
<FilesMatch \.php$>
|
<FilesMatch \.php$>
|
||||||
SetHandler "proxy:unix:/var/opt/remi/php83/run/php-fpm/www.sock|fcgi://localhost"
|
SetHandler "proxy:unix:/var/opt/remi/php83/run/php-fpm/www.sock|fcgi://localhost"
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
@@ -658,11 +699,34 @@ EOF
|
|||||||
mkdir -p /var/opt/remi/php83/run/php-fpm
|
mkdir -p /var/opt/remi/php83/run/php-fpm
|
||||||
chown apache:apache /var/opt/remi/php83/run/php-fpm
|
chown apache:apache /var/opt/remi/php83/run/php-fpm
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
# Очищаем дублирующиеся 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
|
||||||
|
|
||||||
|
# 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_success "Модули Apache настроены"
|
||||||
|
|
||||||
log_step "Создание конфигурации виртуального хоста..."
|
log_step "Создание конфигурации виртуального хоста..."
|
||||||
mkdir -p "$WEBROOT"
|
mkdir -p "$WEBROOT"
|
||||||
|
|
||||||
SERVER_IP=$(hostname -I | awk '{print $1}')
|
SERVER_IP=$(hostname -I | awk '{print $1}')
|
||||||
|
|
||||||
@@ -1169,19 +1233,22 @@ MYSQL_SCRIPT
|
|||||||
|
|
||||||
log_step "Проверка конфигурации Apache..."
|
log_step "Проверка конфигурации Apache..."
|
||||||
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_success "Конфигурация Apache корректна"
|
||||||
|
else
|
||||||
|
log_error "Ошибка в конфигурации Apache"
|
||||||
apache2ctl configtest
|
apache2ctl configtest
|
||||||
exit 1
|
return 1
|
||||||
fi
|
fi
|
||||||
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
elif [ "$DISTRO_FAMILY" = "rhel" ]; then
|
||||||
if ! httpd -t >/dev/null 2>&1; then
|
if httpd -t >/dev/null 2>&1; then
|
||||||
log_error "Конфигурация Apache (httpd) содержит ошибки."
|
log_success "Конфигурация Apache корректна"
|
||||||
|
else
|
||||||
|
log_error "Ошибка в конфигурации Apache"
|
||||||
httpd -t
|
httpd -t
|
||||||
exit 1
|
return 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
log_success "Конфигурация Apache проверена"
|
|
||||||
|
|
||||||
log_step "Запуск и включение сервисов..."
|
log_step "Запуск и включение сервисов..."
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user