Apache/Apache+HTTP2+PHP-FPM+TLS1.3: Unterschied zwischen den Versionen
Rkr (Diskussion | Beiträge) |
Rkr (Diskussion | Beiträge) K (→PHP-FPM) |
||
Zeile 26: | Zeile 26: | ||
listen.mode = 0660 | listen.mode = 0660 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Datei ''/etc/php7/fpm/php.ini'': | |||
*Hier sollte manuell eine Kopie der für Apache gültigen Ini-Datei abgelegt werden. | |||
cp -p /etc/php7/apache2/php.ini /etc/php7/fpm/ | |||
*Achtung: Ohne diese Datei fehlen viele Konfigurationseinstellungen!! | |||
===Dienst einrichten und starten=== | ===Dienst einrichten und starten=== | ||
Zeile 31: | Zeile 36: | ||
systemctl start php-fpm | systemctl start php-fpm | ||
Prüfen | ===Prüfen=== | ||
*Prozesse laufen als ''wwwrun'': | *Prozesse laufen als ''wwwrun'': | ||
ps -ef|grep php-fpm | ps -ef|grep php-fpm | ||
Zeile 45: | Zeile 50: | ||
*Für TCP: | *Für TCP: | ||
netstat -an|grep 9000 | netstat -an|grep 9000 | ||
*Prüfen per phpinfo(): | |||
Configuration File (php.ini) Path /etc/php7/fpm | |||
Loaded Configuration File /etc/php7/fpm/php.ini | |||
Scan this dir for additional .ini files /etc/php7/conf.d | |||
===Fallstricke=== | ===Fallstricke=== | ||
*AppArmor | *AppArmor | ||
Version vom 11. November 2020, 07:00 Uhr
Diese Seite beschreibt, wie man Apache so einrichtet, dass es HTTP/2 beherrscht. Dabei wird gleich auch TLS 1.3 und für PHP-Anwendungen PHP-FPM eingerichtet. Die Beispiele sind unter openSUSE entstanden.
Info zu HTTP/2
PHP-FPM
PHP-FPM wird benötigt, da Apache für HTTP/2 nicht im Prefork-Modus laufen kann, sondern ein anderes Multi-Processing-Modul wie "event" verwendet werden muss (siehe unten). Das Standard-PHP-Modul für Apache funktioniert jedoch nicht mehr mit "event", so dass für PHP-Anwendungen eine andere Lösung implementiert werden muss. PHP-FPM läuft als eigenständiger Dienst und kann sowohl per TCP als auch per Unix Socket angesprochen werden.
Info
Konfiguration
Datei /etc/php7/fpm/php-fpm.conf: Default-Datei kann verwendet werden.
Datei /etc/php7/fpm/php-fpm.d/www.conf (Erste Variante für TCP, zweite für Unix Socket - geht aber nicht parallel):
user = wwwrun
group = www
listen = 127.0.0.1:9000
listen = /run/php-fpm/php-fpm.sock
listen.owner = wwwrun
listen.group = www
listen.mode = 0660
Datei /etc/php7/fpm/php.ini:
- Hier sollte manuell eine Kopie der für Apache gültigen Ini-Datei abgelegt werden.
cp -p /etc/php7/apache2/php.ini /etc/php7/fpm/
- Achtung: Ohne diese Datei fehlen viele Konfigurationseinstellungen!!
Dienst einrichten und starten
systemctl enable php-fpm systemctl start php-fpm
Prüfen
- Prozesse laufen als wwwrun:
ps -ef|grep php-fpm
wwwrun 7295 22565 1 07:43 ? 00:00:08 php-fpm: pool www wwwrun 9294 22565 2 07:51 ? 00:00:00 php-fpm: pool www wwwrun 9406 22565 1 07:51 ? 00:00:00 php-fpm: pool www root 22565 1 0 Nov10 ? 00:00:05 php-fpm: master process (/etc/php7/fpm/php-fpm.conf)
- Datei für Unix Socket (Rechte):
ls -la /run/php-fpm/php-fpm.sock
srw-rw---- 1 wwwrun www 0 10. Nov 15:47 /run/php-fpm/php-fpm.sock
- Für TCP:
netstat -an|grep 9000
- Prüfen per phpinfo():
Configuration File (php.ini) Path /etc/php7/fpm Loaded Configuration File /etc/php7/fpm/php.ini Scan this dir for additional .ini files /etc/php7/conf.d
Fallstricke
- AppArmor
Apache
Info
- Apache HTTP Server unterstützt HTTP/2
- Apache HTTP/2 Modul mod_http2
- Apache HTTP/2 guide / HowTo
- how to h2 in apache
- How to enable HTTP/2 support in Apache