====== PhpMyAdmin ======
===== Installation =====
Pour Debian et Ubuntu il existe un paquet dans les dépôts, cependant, au moment où j'écris cette page, il existe un [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=954766|bug]] dans l'installation. J'ai donc choisi d'installer la dernière version à partir des [[https://www.phpmyadmin.net/downloads/|sources]].
==== Vérifier les sources ====
Pour vérifier l'intégrité des fichiers (somme de contrôle et signature GPG), le détail est expliqué [[https://docs.phpmyadmin.net/fr/latest/setup.html#verifying-phpmyadmin-releases|ici]].
==== Création d'un sous domaine dans Bind ====
Il faut ensuite éditer sa zone DNS pour ajouter un sous-domaine, mais il est aussi possible d'installer PhpMyAdmin dans un répertoire. Je ne détaille pas ici la création de zone.
==== Création d'un serveur virtuel Apache2 ====
Je crée un ''VirtualHost'' sur le port 80, j'ajouterai ensuite une redirection sur le port 443, mais il faut générer un certificat SSL, pour éviter les erreurs avec [[https://letsencrypt.org/|Let's Encrypt]] j'ai commenté la directive ''RewriteRule''.
ServerName phpmyadmin.d2air.com
ServerAlias phpmyadmin.d2air.com
ServerAdmin email@d2air.com
DocumentRoot /var/www/phpmyadmin
RewriteEngine On
#RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [redirect=301]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
=== Création d'un certificat avec Let's Encrypt ===
certbot certonly --webroot -w /var/www/phpmyadmin -d phpmyadmin.d2air.com --email email@d2air.com --rsa-key-size 4096
=== Ajout d'un VirtualHost *:443 ===
La directive ''RewriteRule'' peut maintenant être décommentée, ensuite il faut créer un ''VirtualHost'' afin d'utiliser SSL. J'utilise ici une configuration restrictive, il faudra peut-être une [[https://wiki.mozilla.org/Security/Server_Side_TLS|configuration plus souple]] si de nombreux clients doivent se connecter.
ServerName phpmyadmin.d2air.com
ServerAlias phpmyadmin.d2air.com
ServerAdmin email@d2air.com
DocumentRoot /var/www/phpmyadmin
Options SymLinksIfOwnerMatch
AllowOverride None
Require all denied
Options -Indexes -FollowSymLinks +MultiViews
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
# enable HTTP/2, if available
Protocols h2 http/1.1
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# The CRIME attack uses SSL Compression, we need to disable that
SSLCompression off
SSLProtocol +TLSv1.3 -TLSv1.2 -TLSv1.1 -TLSv1 -SSLv3 -SSLv2
SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
SSLHonorCipherOrder on
SSLSessionTickets off
SSLUseStapling On
# SSLStaplingCache must be exist in /etc/apache2/mods-available/ssl.conf
# SSLOpenSSLConfCmd is supported by version 2.5 and later
SSLOpenSSLConfCmd DHParameters /etc/ssl/private/dh4096.pem
SSLCertificateFile /etc/letsencrypt/live/phpmyadmin.d2air.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/phpmyadmin.d2air.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/phpmyadmin.d2air.com/fullchain.pem
===== Configuration =====
Pour configurer facilement PhpMyAdmin, ajouter ''setup/'' à l'adresse de votre installation sur le serveur web.