Installer HTTP/2


a2enmod http2
systemctl restart apache2

Je ne vais pas vous faire un cours sur Installer HTTP/2, renseignez-vous...

et rajoutez Protocols h2 http/1.1 dans vos virtual hosts (dans la config du https (443) et surtout pas dans le http:


<IfModule mod_ssl.c>
<VirtualHost *:443>

        ServerAdmin webmaster@localhost
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /var/www/example.com

        <Directory />
                Require all denied
                Options -Indexes -Includes -ExecCGI -FollowSymlinks
        </Directory>

        <Directory /var/www/example.com>
                Require all granted
                Options -Indexes -Includes -ExecCGI +FollowSymlinks
        </Directory>

        ErrorLog /var/log/apache2/example.com.log

        # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

        Protocols h2 http/1.1

        SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>
</IfModule>

a2enmod http2
systemctl restart apache2

Tester HTTP/2

Testez avec par exemple: https://tools.keycdn.com/http2-test

si cela ne fonctionne pas c'est peut être que par défaut Apache utilise le module MPM prefork (Multi-Processing Module prefork module)


donc:


Installer PHP’s FPM package :

aptitude install php7.3-fpm

Activez certains modules :

a2enmod proxy_fcgi setenvif

Activez PHP’s FPM :

a2enconf php7.3-fpm

Désactivez MPM prefork :

a2dismod php7.3 mpm_prefork

Activez le module MPM event module, comme substitut à prefork :

a2enmod mpm_event

redémarrez apache

systemctl restart apache2

Autres réglages

Dans ma première tentative de mettre en place php7.3-fpm, apache plantait souvent, et j'avais ceci dans mes logs:

nano /var/log/php7.3-fpm.log

 server reached pm.max_children setting (5), consider raising it

Du coup j'ai paramétré ceci:

nano /etc/php/7.3/fpm/pool.d/www.conf

pm.max_children = 50

J'avoue ne pas savoir trop quoi mettre comme valeur...pour plus d'info:
https://serverfault.com/questions/479443/php5-fpm-server-reached-pm-max-children
https://myshell.co.uk/blog/2012/07/adjusting-child-processes-for-php-fpm-nginx/

Et pour redémarrer php-fpm automatiquement:

nano /etc/php/7.3/fpm/php-fpm.conf

emergency_restart_threshold=3
emergency_restart_interval=1m
process_control_timeout=5s

Cela veut dire si 3 PHP-FPM child process se terminent avec SIGSEGV ou SIGBUS (c.-à-d. Crash) dans l'intervalle d'1 minute, PHP-FPM est censé redémarrer automatiquement. Les child process attendent 5 secondes avant de réagir aux signaux du master.

Sources:
- https://serverfault.com/questions/575457/constantly-have-to-reload-php-fpm
- https://www.php.net/manual/en/install.fpm.configuration.php

Et pour initialiser tous ces changements de configuration:


service php7.3-fpm restart
Vos commentaires

Laisser un commentaire

Votre commentaire sera en attente de modération, validation NON automatique

Votre nom (obligatoire) :


Email ou site internet (facultatif) (nécessaire si vous souhaitez être prévenu d'une réponse):


Image/photo (facultatif) (JPG, JPEG, PNG ou GIF) (image de partition concernant le question par exemple):

Javascript doit être activé