Informations système:
Ubuntu 16.04
Apache 2.4.29
PHP 7.0.22 (CLI)
Afin d’activer Apache 2, j’ai suivi les étapes suivantes de ce tutoriel: https://http2.pro/doc/Apache .
Comprenant:
Ajout de Protocols h2 h2c http/1.1
à Apache2.conf ainsi qu’au Virtual Hosts configuration
.
A réussi:
a2enmod mpm_event
a2enmod http2
Redémarré:
service Apache2 restart
Sudo service php7.0-fpm reload
Le serveur refuse toujours de parler HTTP 2 . Essayé divers tutoriels.
Ubuntu est relativement nouveau pour moi: que puis-je manquer et quelles étapes puis-je suivre pour résoudre ce problème?
Parcourir l'archive /var/log/Apache2/error.log
contient quelque chose comme ceci:
[http2: warn] [pid 3220] AH10034: Le module mpm modum (prefork.c) n'est pas pris en charge par mod_http2. Le mpm détermine la façon dont les choses sont traitées sur votre serveur. HTTP/2 a plus de demandes à cet égard et le mpm actuellement sélectionné ne le fera tout simplement pas. Ceci est un avertissement. Votre serveur continuera à fonctionner, mais le protocole HTTP/2 sera inactif.
Prérequis
Exécuter à la commande de terminal pour obtenir vos propres variables:
lsb_release -a
Apache2 -v
php -v
Cette question est pour:
Ubuntu 16.04
Apache 2.4.29
PHP 7.0.22 (CLI)
Cette réponse est exactement pour:
Ubuntu 16.04.3 LTS
Apache/2.4.29 (Ubuntu)
PHP 7.1.12-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 14 2017 15:37:13)
Le PHP 7.1.12 a été construit en suivant les étapes décrites à (voir question): Comment activer le support HTTP/2 dans Apache , dernière mise à jour le 5 nov 2017.
Faites-le à vos risques et périls; n'utilisez pas cette réponse sur un serveur de production. Je vous en prie ;-) .
Citer, même tutoriel nommé avant:
Apache 2.4.27, HTTP/2 non pris en charge dans prefork
Nous devons changer le mode prefork en mode event ou worker, mais ATTENTION, vous devrez utiliser PHP comme FastCGI .
Première étape
Ajoutez d’abord le référentiel d’Ondřej Surý (notez les caractères UTF8) à votre Ubuntu. Ces instructions sont extraites de ce tutoriel de DigitalOcean . Vous aurez besoin des droits root, ici nous allons utiliser la commande Sudo :
Sudo add-apt-repository ppa:ondrej/php
Sudo apt-get install -y language-pack-en-base
Sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Sudo apt-get update
Deuxième étape
Sudo apt-get install php7.1
Ouais, c'est vrai, sans blague. Après cela, prochaine étape.
Troisième étape
Sudo apachectl stop
Sudo apt-get install php7.1-fpm
Sudo a2enmod proxy_fcgi setenvif
Sudo a2enconf php7.1-fpm
Sudo a2dismod php7.1
Sudo a2dismod mpm_prefork
Sudo a2enmod mpm_event
Sudo apachectl start
Dépannage
Si vous avez un problème avec
Sudo a2dismod php7.1
essayez juste ceci:
Sudo a2dismod php7.0
(Nous avons eu ce problème aussi: Sudo a2dismod php7.1 )
Amélioration possible
Si vous voulez utiliser le dernier pack:
Sudo apt-get install php7.2-fpm
( Nous l'avons installé, voir l'image )
Voir la photo suivante pour notre résultat et visiter https://http2.pro pour votre propre test (définir ufw en premier!)
Une toute nouvelle technologie arrive! Voir autre futurs protocoles ici !
Merci de visiter AskUbuntu!