Для работы Apache от пользователя можно использовать конфигурацию apache+mod_php+mpm_prefork+mpm_itk, но эта комбинация не работает по HTTP2. Поэтому настраиваем по-другому.
У меня работает конфигурация apache + php8.3-fpm + mpm_event + http2.
Первичная настройка
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
sudo apt upgrade
sudo apt install apache2
sudo apt install php8.3-fpm
#отключаем если было
sudo a2dismod php8.3
sudo a2dismod mpm_itk
sudo a2dismod mpm_prefork
sudo a2enconf php8.3-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enmod mpm_event
sudo a2enmod http2
Редактируем пул PHP
sudo cp /etc/php/8.3/fpm/pool.d/www.conf /etc/php/8.3/fpm/pool.d/jura12.conf
sudo mcedit /etc/php/8.3/fpm/pool.d/jura12.conf
1. название пула с
[www]
на [jura12]
;
2. имя пользователя и группы с
user = www-data
и group = www-data
на своего пользователя и свою группу;
3. имя файла
listen = /run/php/php8.3-fpm.sock
на /run/php/php8.3-fpm.jura12.sock
.Редактируем настройки сайта
В файле /etc/apache2/sites-enabled/jura12.ru.conf в разделе Virtualhost добавляем строки:
<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler "proxy:unix:/run/php/php8.3-fpm.jura12.sock|fcgi://localhost"
</FilesMatch>
Запускаем
sudo systemctl start php8.3-fpm
sudo systemctl start apache2
Протестировано на Ubuntu 24.04.
Что скажете?
P.S. для успешной работы нужно включить https. для этого надо использовать бесплатные сертификаты Let's Encrypt. а уже поверх них будет работать http2. тут есть варианты но они тянут на отдельную статью.