apache2 -v
Server version: Apache/2.4.56 (Debian)
Server built: 2023-03-08T03:05:04
Ověříme, že SSL mod je zapnutý, když není, zapne ho to, zakáže php7.4, 8.0, 8.1, 8.2
if [ $(apachectl -M |grep ssl|wc -l) = 0 ]; then echo "SSL not enabled"; a2enmod ssl; a2dismod php7.4 ; a2dismod php8.0 ; a2dismod php8.1 ; a2dismod php8.2; fi
Pak už budete mít povolený ssl_modul, což ověříme:
apachectl -M | grep ssl
ssl_module (shared)
Teď vám všechny weby budou ukazovat zdrojáky php, místo webových stránek v php, potřebujete rozběhat php-fpm.
zakážeme Apache MPM Prefork, povolíme Apache MPM event a mod http2:
a2dismod mpm_prefork ; a2enmod mpm_event ; a2enmod http2
zkontrolujeme, že je jsou tyto moduly v apachi načtené:
apache2ctl -M | grep 'ssl\|http2'
http2_module (shared)
ssl_module (shared)
Instalujeme php8.1-fpm
apt-get install software-properties-common ca-certificates lsb-release apt-transport-https -y && sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' && wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add - && apt-get update -y && apt-get update -y && apt-get install libapache2-mod-php8.1 php8.1 php8.1-fpm php8.1-bcmath php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-gmp php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-zip -y
Do vašeho web configu třeba do /etc/apache2/sites-available/000-default-le-ssl.conf či pokud máte doménu třeba /etc/apache2/sites-available/vase.doma.com-ssl.conf vložte před </VirtualHost>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>
Instalujeme php8.2-fpm
apt-get install software-properties-common ca-certificates lsb-release apt-transport-https -y && sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' && wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add - && apt-get update -y && apt-get update -y && apt-get install libapache2-mod-php8.2 php8.2 php8.2-fpm php8.2-bcmath php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-gmp php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-xml php8.2-zip -y
Do vašeho web configu třeba do /etc/apache2/sites-available/000-default-le-ssl.conf vložte před </VirtualHost>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>
Povolíme HTTP/2 protocol v Apache2.conf konfiguráku připojením posledního řádku do /etc/apache2/apache2.conf a restartneme apache a mělo by to jet:
echo "Protocols h2 http/1.1" >> /etc/apache2/apache2.conf && systemctl restart apache2
A pak už můžete otestovat funkčnost http2 protokolu třeba zde:
https://tools.keycdn.com/http2-test