{"id":24654,"date":"2020-11-22T14:51:02","date_gmt":"2020-11-22T13:51:02","guid":{"rendered":"https:\/\/exoconsult.com\/?p=24654"},"modified":"2020-11-22T22:16:02","modified_gmt":"2020-11-22T21:16:02","slug":"activer-http2-sur-un-stack-lamp-bitnami","status":"publish","type":"post","link":"https:\/\/exoconsult.com\/fr\/serveur\/activer-http2-sur-un-stack-lamp-bitnami\/","title":{"rendered":"Activer HTTP2 sur un Stack Lamp Bitnami"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Pour am\u00e9liorer les performances d&rsquo;affichage de votre site web, il est (vraiment) recommand\u00e9 d&rsquo;activer HTTP\/2. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Avant propos !<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP\/2 fonctionne exclusivement avec <strong>HTTPS<\/strong>. Il est donc n\u00e9cessaire que votre site utilise HTTPS (avec certificat Let&rsquo;s Encrypt par exemple).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour pouvoir profiter de HTTP\/2 sur votre site WordPress, il est n\u00e9cessaire que votre template soit pr\u00e9vu pour HTTP\/2. En effet, le code de chargement des ressources (js, css) doit \u00eatre adapt\u00e9 pour HTTP\/2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Activer mod_http2 dans Apache<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le stack Bitnami est livr\u00e9 avec mod_http2 pr\u00e9-install\u00e9 mais non activ\u00e9 par d\u00e9faut. Il est relativement simple d&rsquo;activer le module sur Apache :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Editer le fichier de configuration Apache :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/opt\/bitnami\/apache2\/conf\/httpd.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e9commenter la ligne (enlever le caract\u00e8re # en d\u00e9but de ligne) permettant de charger le module mod_http2.so. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>LoadModule http2_module modules\/mod_http2.so<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Red\u00e9marrer Apache et v\u00e9rifier que le module http2 est correctement charg\u00e9<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo \/opt\/bitnami\/ctlscript.sh restart apache<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pour v\u00e9rifier que le module http2 est correctement charg\u00e9<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo \/opt\/bitnami\/apache2\/bin\/apachectl -M | grep http2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Le r\u00e9sultat devrait \u00eatre :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> http2_module (shared)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Activer le support HTTP\/2 pour vos applications web<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Maintenant que le module http2 est charg\u00e9 au niveau d&rsquo;Apache, il faut encore \u00ab\u00a0dire\u00a0\u00bb \u00e0 Apache quels applications web doivent utiliser le protocole HTTP\/2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ajouter les 2 lignes suivantes dans le fichier <em>\/opt\/bitnami\/apache2\/conf\/bitnami\/bitnami.conf<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/opt\/bitnami\/apache2\/conf\/bitnami\/bitnami.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost _default_:80>\n  ...\n  Protocols h2 h2c http\/1.1\n&lt;\/VirtualHost>\n\n...\n\n&lt;VirtualHost _default_:443>\n  ...\n  Protocols h2 h2c http\/1.1\n&lt;\/VirtualHost><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vous devez \u00e9galement effectuer la modification pour <strong>tous les h\u00f4tes virtuels<\/strong> configur\u00e9s sur votre machine.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/opt\/bitnami\/apps\/wordpress\/conf\/httpd-vhosts.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80>\n  Protocols h2 h2c http\/1.1\n  ...\n&lt;\/VirtualHost>\n\n...\n\n&lt;VirtualHost *:443>\n  Protocols h2 h2c http\/1.1\n  ...\n&lt;\/VirtualHost><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/opt\/bitnami\/apps\/wordpress2\/conf\/httpd-vhosts.conf\nsudo nano \/opt\/bitnami\/apps\/wordpress3\/conf\/httpd-vhosts.conf\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il est temps maintenant de red\u00e9marrer Apache et v\u00e9rifier si votre application web est pass\u00e9e en mode http2.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo \/opt\/bitnami\/ctlscript.sh restart apache\n\nSyntax OK\n\/opt\/bitnami\/apache2\/scripts\/ctl.sh : httpd stopped\nSyntax OK\n\/opt\/bitnami\/apache2\/scripts\/ctl.sh : httpd started at port 80<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Tester si votre serveur est en HTTP\/2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il existe 2 m\u00e9thodes pour tester si vous avez correctement activ\u00e9 le module HTTP\/2 sur votre serveur ou votre application web.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliser le site http2.pro<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Rendez-vous sur le site web <a rel=\"noreferrer noopener\" href=\"http:\/\/http2.pro\" target=\"_blank\" data-type=\"URL\" data-id=\"http2.pro\">https:\/\/http2.pro\/<\/a> et entrez dans la zone l&rsquo;url de votre site web.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"828\" height=\"522\" src=\"https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/image.png\" alt=\"\" class=\"wp-image-24658\" srcset=\"https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/image.png 828w, https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/image-300x189.png 300w, https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/image-768x484.png 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous voyez le message ci-dessus, bravo, vous venez d&rsquo;activer HTTP\/2 sur votre serveur. Vous devriez d\u00e8s \u00e0 pr\u00e9sent voir une diff\u00e9rence de performance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliser le mode d\u00e9veloppeur de Firefox ou Chrome.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Rendez-vous sur votre site web en utilisant le navigateur Firefox et appuyez sur la touche F12. Rendez-vous dans l&rsquo;onglet \u00ab\u00a0Console\u00a0\u00bb et rechargez la page en appuyant sur F5.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"936\" height=\"38\" src=\"https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/exoconsult_http2_actif_browser.jpg\" alt=\"\" class=\"wp-image-24660\" srcset=\"https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/exoconsult_http2_actif_browser.jpg 936w, https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/exoconsult_http2_actif_browser-300x12.jpg 300w, https:\/\/exoconsult.com\/wp-content\/uploads\/sites\/9\/2020\/11\/exoconsult_http2_actif_browser-768x31.jpg 768w\" sizes=\"(max-width: 936px) 100vw, 936px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous voyez \u00ab\u00a0HTTP\/2\u00a0\u00bb \u00e0 cot\u00e9 d&rsquo;une ressource charg\u00e9e depuis votre site web, c&rsquo;est que tout est bon pour vous !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP\/2 ne fonctionne pas apr\u00e8s avoir suivi ce tutoriel ?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le cas o\u00f9 vous avez suivi ce tutoriel mais votre site ou serveur n&rsquo;utilise toujours pas HTTP\/2, voici ce que vous pouvez faire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Regarder dans les logs Apache si une erreur appara\u00eet<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Afficher les 100 derni\u00e8res erreurs Apache :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tail -n 100 \/opt\/bitnami\/apache2\/logs\/error_log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Voyez-vous l&rsquo;erreur suivante<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Sun Nov 22 13:14:49.170194 2020] &#91;http2:warn] &#91;pid 282808] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP\/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP\/2 protocol will be inactive.\n&#91;Sun Nov 22 13:14:49.192745 2020] &#91;mpm_prefork:notice] &#91;pid 282808] AH00163: Apache\/2.4.43 (Unix) OpenSSL\/1.1.1d PHP\/7.4.8 configured -- resuming normal operations\n&#91;Sun Nov 22 13:14:49.192830 2020] &#91;core:notice] &#91;pid 282808] AH00094: Command line: '\/opt\/bitnami\/apache2\/bin\/httpd.bin -f \/opt\/bitnami\/apache2\/conf\/httpd.conf'<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Comment corriger l&rsquo;erreur AH10034 et AH00163<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pour r\u00e9soudre ce probl\u00e8me, vous devez installer et utiliser le package <strong>php-fpm<\/strong>. Ce package est d\u00e9j\u00e0 pr\u00e9-install\u00e9 par Bitnami.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Activer le script de contr\u00f4le de PHP-FPM<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mv \/opt\/bitnami\/php\/scripts\/ctl.sh.disabled \/opt\/bitnami\/php\/scripts\/ctl.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">2. D\u00e9marrer PHP-FPM<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo \/opt\/bitnami\/ctlscript.sh start php-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vous devriez voir le message suivant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/bitnami\/php\/scripts\/ctl.sh : php-fpm started<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">3. D\u00e9sactivez le module php7_module en commentant le ligne ci-dessous dans le fichier de configuration d&rsquo;Apache<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/opt\/bitnami\/apache2\/conf\/httpd.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Commentez la ligne suivante (ajoutez un # au d\u00e9but de la ligne)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#LoadModule php7_module        modules\/libphp7.so<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">4. Dans le m\u00eame fichier, d\u00e9sactivez (commentez) le ligne qui indique \u00e0 Apache de charger le module <em>mpm_prefork <\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#LoadModule mpm_prefork_module modules\/mod_mpm_prefork.so<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">5. Toujours dans le m\u00eame fichier, activez (d\u00e9commentez) la ligne qui indique \u00e0 Apache de charger le module <em>mpm_event<\/em> :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>LoadModule mpm_event_module modules\/mod_mpm_event.so<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">6. Sauvez (CTRL+O) et quittez (CTRL+X) le fichier de configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">7. Red\u00e9marrez Apache.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo \/opt\/bitnami\/ctlscript.sh restart apache<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Syntax OK\n\/opt\/bitnami\/apache2\/scripts\/ctl.sh : httpd stopped\nSyntax OK\n\/opt\/bitnami\/apache2\/scripts\/ctl.sh : httpd started at port 80<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">8. V\u00e9rifiez si HTTP2 est actif (voir m\u00e9thode ci-dessus).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour am\u00e9liorer les performances d&rsquo;affichage de votre site web, il est (vraiment) recommand\u00e9 d&rsquo;activer HTTP\/2. Avant propos ! HTTP\/2 fonctionne exclusivement avec HTTPS. Il est donc n\u00e9cessaire que votre site utilise HTTPS (avec certificat Let&rsquo;s Encrypt par exemple). Pour pouvoir profiter de HTTP\/2 sur votre site WordPress, il est n\u00e9cessaire que votre template soit pr\u00e9vu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":24664,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"page_builder":"","wds_primary_category":0,"footnotes":""},"categories":[15,21,14],"tags":[],"class_list":["post-24654","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apache","category-bitnami","category-serveur"],"_links":{"self":[{"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/posts\/24654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/comments?post=24654"}],"version-history":[{"count":8,"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/posts\/24654\/revisions"}],"predecessor-version":[{"id":24665,"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/posts\/24654\/revisions\/24665"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/media\/24664"}],"wp:attachment":[{"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/media?parent=24654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/categories?post=24654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exoconsult.com\/fr\/wp-json\/wp\/v2\/tags?post=24654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}