phpMyAdmin est un outil d'administration gratuit et open-source écrit en PHP utilisé pour administrer les serveurs de base de données MySQL et MariaDB depuis une interface Web . La plupart des développeurs préfèrent utiliser phpMyAdmin pour interagir avec un serveur de base de données en raison de sa facilité d'utilisation et de son éditeur SQL avancé, ce qui facilite la création et le test de requêtes SQL complexes.
Dans le didacticiel suivant, vous apprendrez comment installer LEMP et phpMyAdmin à partir des sources sur Ubuntu 20.04.
Prérequis
- OS recommandé : Ubuntu 20.04 – facultatif (Ubuntu 21.04 et Linux Mint 20)
- Compte utilisateur : Un compte utilisateur avec un accès sudo ou root.
- Obligatoire : Nginx, MariaDB et PHP (LEMP)
Mise à jour du système d'exploitation
Avant toute chose, mettez à jour votre Ubuntu système d'exploitation pour s'assurer que tous les packages existants sont à jour :
sudo apt update && sudo apt upgrade -y
Nginx pour phpMyAdmin
Ajouter un PPA personnalisé pour le dernier Nginx
Étant donné que vous configurez phpMyAdmin avec Nginx, vous devrez installer l'application Web. Actuellement, la meilleure méthode pour la plupart consiste à utiliser le PPA du célèbre Ondřej Surý, qui gère à la fois les versions Nginx et Stable et est constamment mis à jour.
Tout d'abord, ajoutez un PPA stable ou principal comme suit :
Écurie Nginx :
sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update
Ligne principale Nginx (recommandé) :
sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update
Installer Nginx
Après avoir installé Nginx PPA stable ou principal, utilisez la commande suivante pour installer Nginx :
sudo apt install nginx-core nginx-common nginx nginx-full
MariaDB pour phpMyAdmin
Installer MariaDB pour Ubuntu 20.04
Tout d'abord, vous devez installer MariaDB pour créer une base de données et un nom d'utilisateur comme suit :
sudo apt install mariadb-server
Notez qu'il s'agit d'une version plus ancienne, l'installation par défaut étant la version 10.3. Veuillez consulter notre tutoriel si vous préférez installer une version plus récente de MariaDB, telle que 10.5 et 10.6.
Ensuite, exécutez le script de sécurité si vous avez installé une nouvelle version pour la première fois avec la commande suivante :
sudo mysql_secure_installation
Ensuite, suivez ci-dessous :
- Définition du mot de passe pour root comptes.
- Suppression des comptes racine accessibles depuis l'extérieur de l'hôte local.
- Suppression des comptes d'utilisateurs anonymes
- Suppression de la base de données de test, accessible par défaut aux utilisateurs anonymes.
Remarque, vous utilisez (Y) pour tout supprimer.
Créer une base de données et un nom d'utilisateur phpMyAdmin
Tout d'abord, ouvrez MariaDB et créez une nouvelle base de données pour phpMyAdmin :
sudo mysql -u root
Ensuite, créez une base de données dans le terminal MariaDB :
CREATE DATABASE phpmyadmindb;
Vous devez maintenant créer un utilisateur et accorder les autorisations comme suit :
GRANT ALL ON phpmyadmindb.* TO phpmyadminuser@localhost IDENTIFIED BY 'password here change';
Pour finir, videz les privilèges et quittez avec les codes suivants :
FLUSH PRIVILEGES;
QUIT;
PHP pour phpMyAdmin
Ajouter un PPA personnalisé pour le dernier PHP
Semblable à notre installation Nginx, il est recommandé d'ajouter le PPA par Ondřej Surý, le mainteneur PHP pour Debian. Le PPA personnalisé a toutes les dernières versions de 7.4, 8.0 et la dernière 8.1 entrante.
Ajoutez le PPA à l'aide de la commande suivante :
sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y
Installer PHP pour Ubuntu 20.04
Maintenant, vous pouvez installer PHP 7.4 ou PHP 8.0. Comme PHP est encore plus récent et a peut-être plus de bogues avec phpMyAdmin, il est recommandé d'installer PHP 7.4 pour le moment. Pour ce faire, utilisez la commande de terminal suivante pour installer les packages requis :
sudo apt install php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-mcrypt php7.4-cli php7.4-curl php7.4-zip php7.4-gd
Installer phpMyAdmin sur Ubuntu 20.04
Par défaut, le référentiel Ubuntu 20.04 est livré avec phpMyAdmin et les dépendances requises. Cependant, comme souvent avec les versions d'Ubuntu LTS, la version et la construction sont loin derrière ce qui est actuellement disponible à partir de la source. Ainsi, dans le but de ce guide, vous téléchargerez à partir de la source comme suit :
Télécharger la dernière version source de phpMyAdmin
Pour commencer, visitez la page de téléchargement de phpMyAdmin pour trouver la dernière version actuellement. Au moment de ce tutoriel, la version 5.1.1 est la dernière.
Exécutez les codes suivants pour télécharger automatiquement la dernière version dans toutes les langues :
DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz
Si vous souhaitez télécharger la version anglaise, remplacez la ligne de fin par ce qui suit :
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz
Ensuite, extrayez l'archive à l'aide de la commande suivante :
tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz
Configurer phpMyAdmin manuellement
Vous devez déplacer le répertoire extrait et ses sous-répertoires vers /usr/share emplacement du répertoire où phpMyAdmin s'attend à trouver ses fichiers de configuration par défaut. Pour cela, utilisez la commande suivante :
sudo mv phpMyAdmin-*/ /usr/share/phpmyadmin
Par défaut, phpMyAdmin n'est pas fourni avec un TMP répertoire lors de l'installation à partir de la source, et vous devez le créer manuellement :
sudo mkdir -p /var/lib/phpmyadmin/tmp
Attribuez les autorisations appropriées à l'utilisateur www-data avec le répertoire phpMyAdmin :
sudo chown -R www-data:www-data /var/lib/phpmyadmin
Dans le répertoire phpMyAdmin, un fichier d'exemple de configuration par défaut est inclus. Vous devrez renommer ce fichier pour que phpMyAdmin reconnaisse la configuration. Cependant, pour la sauvegarde, vous utiliserez le CP commande pour créer une copie et conserver la valeur par défaut comme sauvegarde si des erreurs sont commises dans le répertoire /etc/usr/phpmyadmin/ .
Copiez config.sample.inc.php vers config.inc.php avec la commande suivante :
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Ensuite, ouvrez ce fichier en utilisant votre éditeur de texte préféré. Pour le tutoriel, l'éditeur de texte nano est utilisé :
sudo nano /usr/share/phpmyadmin/config.inc.php
phpMyAdmin utilise un chiffrement Blowfish. Faites défiler jusqu'à la ligne qui commence par $cfg[‘blowfish_secret’] .
Les lignes ressembleront par exemple :
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Vous devrez attribuer une chaîne de 32 caractères aléatoires entre les guillemets simples. Le moyen le plus simple d'y parvenir est d'utiliser le programme pwgen . Pour installer pwgen, utilisez la commande de terminal suivante :
sudo apt install pwgen
Une fois installé, exécutez la commande suivante :
pwgen -s 32 1
Vous obtiendrez alors vos 32 caractères aléatoires pour le secret du poisson-globe, exemple de sortie :
Exemple d'ajout du chiffrement au fichier de configuration (Ne pas copier) :
$cfg['blowfish_secret'] = 'kQVwa2yLI6FxA3LN6E7YcW3WgtTKTZ2j'
Le reste des paramètres par défaut devrait fonctionner pour la plupart des utilisateurs. Si votre serveur est situé sur un autre serveur situé sur votre réseau, recherchez et modifiez la ligne $cfg[‘Servers’][$i][‘host’] = à celui de l'adresse IP privée. Exemple ci-dessous :
$cfg['Servers'][$i]['host'] = '192.168.55.101';
Créer un bloc de serveur Nginx pour phpMyAdmin
Pour accéder à l'interface web de phpMyAdmin, vous devrez créer un bloc serveur Nginx. Il est fortement recommandé de garder cela séparé, et sur un sous-domaine, vous pouvez lui donner le nom que vous voulez pour aider à la sécurité et aux attaques par force brute.
Tout d'abord, créez et ouvrez votre bloc serveur à l'aide de l'éditeur de texte nano comme suit :
sudo nano /etc/nginx/sites-available/phpmyadmin.conf
Ensuite, vous pouvez coller le texte ci-dessous dans le fichier. Notez que vous devez remplacer l'URL du domaine par la vôtre :
server {
listen 80;
listen [::]:80;
server_name pma.example.com;
root /usr/share/phpmyadmin/;
index index.php index.html index.htm index.nginx-debian.html;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
location / {
try_files $uri $uri/ /index.php;
}
location ~ ^/(doc|sql|setup)/ {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /\.ht {
deny all;
}
}
Si vous êtes le seul à y accéder à partir d'une adresse IP statique, vous pouvez ajouter le code suivant au-dessus de la première entrée d'emplacement. Un exemple de ceci est ci-dessous :
allow <your ip address>;
deny all;
location / {
try_files $uri $uri/ /index.php;
}
...........................................
Cela va naturellement bloquer toute personne visitant la page avec une erreur 403, sauf si votre adresse IP l'autorise. Ceci, par nature, peut arrêter toutes les attaques brutes dans leur élan, mais peut-être pas viable pour certaines configurations.
Enregistrez maintenant en utilisant (CTRL+O) et quittez avec (CTRL+X) .
Testez votre bloc de serveur Nginx en exécutant la commande de simulation :
sudo nginx -t
Si vous n'avez aucune erreur, vous devriez obtenir le résultat suivant :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Redémarrez maintenant votre service Nginx pour que les modifications prennent effet :
sudo systemctl restart nginx
Accéder à l'interface utilisateur Web de phpMyAdmin
Pour accéder à l'interface Web, ouvrez votre navigateur Internet préféré et saisissez pma.example.com avec (exemple) votre domaine. Vous devriez arriver à l'écran de connexion de phpMyAdmin comme suit :
Connectez-vous à l'aide du nom d'utilisateur et du mot de passe MariaDB que vous avez initialement configurés au début du didacticiel. Vous arriverez alors à l'écran principal.
Installer le certificat TLS
Pour sécuriser davantage l'interface Web phpMyAdmin, vous pouvez éventuellement installer un certificat TLS Let's Encrypt gratuit depuis le dépôt par défaut d'Ubuntu .
Exécutez la commande suivante dans votre terminal Ubuntu :
sudo apt install certbot python3-certbot-nginx
Exécutez maintenant la commande suivante pour obtenir et installer le certificat TLS pour Nginx et phpMyAdmin :
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email your-email-address
Lors de l'installation du certificat, vous recevrez un avis pour recevoir des e-mails de EFF (Electronic Frontier Foundation) . Choisissez O ou N, votre certificat TLS sera automatiquement installé et configuré pour vous.
Ça y est, et vous avez installé SSL sur votre espace phpMyAdmin. Assurez-vous de tester en utilisant un test SSL gratuit tel que DigiCert ou SSL Labs.