Serveur HTTP/2 H2O sous FreeBSD 11 avec support PHP/MySQL
This article is in French and will be available soon in english.
H2O fait partie de la nouvelle génération de serveurs HTTP destinés à augmenter la rapidité d’affichage des pages web notamment en s’appuyant sur le protocole HTTP/2. Les performances annoncées sont plus que correctes même face au très bon Nginx.
N’ayant pu compiler H2O sur OpenBSD 6.0, j’en ai profité pour tester l’installation et la configuration sur FreeBSD 11.0 qui intègre le package associé. L’objectif ici va être de déployer et configurer tous les éléments nécessaires à la mise en ligne d’un CMS de type WordPress le tout servi en HTTP/2 avec compression via GZIP.
Installation des packages :
# pkg install h2o mysql56-server php56-mysql php56-mysqli
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
# rehash
Configuration de mysqld :
# sysrc mysql_enable=yes
# service mysql-server start
# mysql_secure_installation
Enter current password for root (enter for none): **[ENTRER]**
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL root user without the proper authorization.
Set root password? [Y/n] **Y**
New password: **mon-mot-de-passe**
Re-enter new password: **mon-mot-de-passe**
Password updated successfully!
Configuration de PHP :
# sysrc php_fpm_enable=yes
# vi /usr/local/etc/php-fpm.conf
listen = /tmp/fcgi.sock
listen.owner = www
listen.group = www
listen.mode = 0660
# service php-fpm start
Configuration de H2O :
# sysrc h2o_enable=yes
# mkdir /var/www && chown www /var/www
# vi /usr/local/etc/h2o/h2o.conf
user: www
pid-file: /var/run/h2o.pid
access-log: /var/log/h2o/h2o-access.log
error-log: /var/log/h2o/h2o-error.log
hosts:
"lina.cagedmonster.net":
listen:
port: 80
paths: "/":
file.dir: /var/www
redirect: url: /index.php/
internal: YES
status: 307
file.custom-handler:
extension: .php
fastcgi.connect:
port: /tmp/fcgi.sock
type: unix
file.index: [ 'index.php', 'index.html' ]
http2-reprioritize-blocking-assets: ON
gzip: ON
# service h2o start
Vous voilà avec un serveur HTTP gérant le protocole HTTP/2 et la compression GZIP.
H2O est toutefois un peu jeune pour être utilisé en production, il n’est pas possible notamment de profiter d’un système d’URL REWRITE poussé comme Nginx ce qui est moins avantageux dans la mise en place de CMS où il est nécessaire de créer des URL sur-mesure.
Besoin d’aide ?