GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 20.04 LTS

Ce tutoriel vous montrera comment installer phpMyAdmin avec Nginx, MariaDB et PHP7.4 (LEMP) sur Ubuntu 20.04. phpMyAdmin est un outil de gestion de base de données Web gratuit et open-source écrit en PHP. Il fournit une interface Web graphique permettant aux utilisateurs de gérer la base de données MySQL ou MariaDB.

phpMyAdmin permet aux administrateurs de :

  • naviguer dans les bases de données et les tables ;
  • créer, copier, renommer, modifier et supprimer des bases de données ;
  • créer, copier, renommer, modifier et supprimer des tables ;
  • effectuer la maintenance des tables ;
  • ajouter, modifier et supprimer des champs ;
  • exécuter n'importe quelle instruction SQL, même plusieurs requêtes ;
  • créer, modifier et supprimer des index ;
  • charger des fichiers texte dans des tableaux ;
  • créer et lire des vidages de tables ou de bases de données ;
  • exporter des données aux formats SQL, CSV, XML, Word, Excel, PDF et LaTeX ;
  • administrer plusieurs serveurs ;
  • gérer les utilisateurs et les privilèges MySQL ;
  • vérifier les paramètres du serveur et les informations d'exécution avec des conseils de configuration ;
  • vérifier l'intégrité référentielle dans les tables MyISAM ;
  • créer automatiquement des requêtes complexes à l'aide de Query-by-example (QBE)
  • connecter les tables requises ;
  • créer des graphiques PDF de la mise en page de la base de données ;
  • rechercher globalement dans une base de données ou un sous-ensemble de celle-ci ;
  • transformer les données stockées dans n'importe quel format à l'aide d'un ensemble de fonctions prédéfinies, telles que l'affichage des données BLOB sous forme d'image ou de lien de téléchargement ;
  • gérer les tables InnoDB et les clés étrangères ;

Prérequis

Pour suivre ce didacticiel, vous devez disposer d'un système d'exploitation Ubuntu 20.04 exécuté sur votre ordinateur local ou sur un serveur distant.

Si vous recherchez un VPS (Virtual Private Server), vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 100 $ sur DigitalOcean. (Pour les nouveaux utilisateurs uniquement). Si vous êtes déjà un utilisateur de DigitalOcean, vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 50 $ sur Vultr (pour les nouveaux utilisateurs uniquement).

Il est supposé que vous avez déjà installé la pile LEMP sur Ubuntu 20.04. Si ce n'est pas le cas, veuillez consulter le didacticiel suivant.

  • Comment installer la pile LEMP (Nginx, MariaDB, PHP7.4) sur Ubuntu 20.04

Cela dit, commençons par installer phpMyAdmin.

Étape 1 :Téléchargez et installez phpMyAdmin sur Ubuntu 20.04

phpMyAdmin est inclus dans le référentiel de logiciels Ubuntu 20.04, nous pouvons donc l'installer facilement avec la commande suivante.

sudo apt update
sudo apt install phpmyadmin

La commande ci-dessus installera toutes les dépendances nécessaires, y compris les extensions PHP7. Lors de l'installation, il vous sera demandé si vous souhaitez utiliser dbconfig-common pour configurer la base de données. Appuyez sur la touche Tab pour sélectionner Oui.

Cela créera également un nouvel utilisateur de base de données nommé phpmyadmin . Donnez un mot de passe à cet utilisateur.

Ensuite, il vous demandera de sélectionner un serveur Web à configurer. Nginx n'est pas sur la liste, alors appuyez sur la touche Tab et appuyez sur OK pour ignorer cette étape.

Une fois cela fait, une nouvelle base de données nommée phpmyadmin est créé et l'utilisateur de la base de données phpmyadmin dispose des privilèges nécessaires pour gérer cette base de données. Si vous êtes curieux comme moi, vous pouvez vous connecter à MariaDB et vérifier quels privilèges phpmyadmin l'utilisateur a été autorisé.

Vous pouvez utiliser la commande suivante pour vous connecter au serveur MariaDB.

sudo mysql -u root

Vérifiez ensuite les privilèges.

show grants for [email protected];

Sortie :

Comme vous pouvez le voir, l'utilisateur phpmyadmin a tous les privilèges sur la base de données phpmyadmin . Vous pouvez maintenant quitter en exécutant :

exit;

Étape 2 :Créer un bloc de serveur Nginx pour phpMyAdmin

Pour pouvoir accéder à l'interface Web de phpMyAdmin, nous devons créer un bloc de serveur Nginx en exécutant la commande suivante.

sudo nano /etc/nginx/conf.d/phpmyadmin.conf

Nous allons le configurer pour pouvoir accéder à phpMyAdmin via un sous-domaine. Collez le texte suivant dans le fichier. Remplacez pma.example.com avec votre sous-domaine actuel et n'oubliez pas de créer un enregistrement DNS A pour celui-ci.

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;
  }
}

Vos fichiers phpMyAdmin sont dans /usr/share/phpmyadmin/ annuaire. Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

Vous devriez maintenant pouvoir accéder à l'interface Web de phpMyAdmin via

pma.example.com

Étape 3 :Installer le certificat TLS

Pour sécuriser l'interface web de phpMyadmin, nous pouvons installer un certificat Let's Encrypt TLS gratuit. Installez le client Let's Encrypt à partir du référentiel de logiciels Ubuntu 20.04 comme ci-dessous :

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx est le plugin Nginx pour Certbot. Exécutez maintenant la commande suivante pour obtenir et installer le certificat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d pma.example.com --email [email protected]

Où :

  • –nginx  :Utilisez l'authentificateur et le programme d'installation Nginx
  • –d'accord  :Acceptez les conditions d'utilisation de Let's Encrypt
  • –redirection  :Appliquer HTTPS par redirection 301.
  • –hsts  :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP.
  • –agrafe-ocsp  :Active l'agrafage OCSP.
  • –doit-agrafer :Ajoute l'extension OCSP Must Staple au certificat.
  • -d flag est suivi d'une liste de noms de domaine, séparés par une virgule. Vous pouvez ajouter jusqu'à 100 noms de domaine.
  • –e-mail :E-mail utilisé pour l'enregistrement et le contact de récupération.

Il vous sera demandé si vous souhaitez recevoir des e-mails de l'EFF (Electronic Frontier Foundation). Après avoir choisi O ou N, votre certificat TLS sera automatiquement obtenu et configuré pour vous, ce qui est indiqué par le message ci-dessous.

Étape 4 :Testez votre certificat TLS

Accédez à ssllabs.com pour tester votre certificat et votre configuration TLS. Vous devriez obtenir A+ car HSTS est activé.

Étape 5 :Résoudre l'erreur de connexion à phpMyAdmin

Si vous vous connectez avec un compte root MariaDB, vous pouvez voir l'erreur suivante.

 #1698 - Access denied for user 'root '@'localhost'

et

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

Si vous vous connectez avec l'utilisateur phpmyadmin , vous ne verrez pas l'erreur ci-dessus. Cependant, l'utilisateur phpmyadmin ne peut être utilisé que pour administrer le phpmyadmin base de données. La cause de l'erreur est que, par défaut, l'utilisateur root de MariDB est authentifié via le plugin unix_socket, au lieu d'utiliser le mysql_native_password brancher. Pour contourner ce problème, nous pouvons créer un autre utilisateur administrateur et accorder tous les privilèges au nouvel utilisateur administrateur.

Connectez-vous au serveur MariaDB à partir de la ligne de commande.

sudo mariadb -u root

Créez un utilisateur administrateur avec authentification par mot de passe.

create user [email protected] identified by 'your-chosen-password';

Accordez tous les privilèges sur toutes les bases de données.

grant all privileges on *.* to [email protected] with grant option;

Vider les privilèges et quitter ;

flush privileges;

exit;

Vous pouvez maintenant vous connecter à phpMyAdmin avec le compte administrateur et gérer toutes les bases de données.

Renouvellement automatique du certificat TLS

Pour renouveler automatiquement le certificat Let's Encrypt, modifiez simplement le fichier crontab de l'utilisateur root.

sudo crontab -e

Ajoutez ensuite la ligne suivante en bas.

@daily certbot renew --quiet && systemctl reload nginx

Le rechargement de Nginx est nécessaire pour qu'il récupère le nouveau certificat auprès des clients.


Ubuntu
  1. Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04

  2. Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

  3. Comment installer Seafile avec Nginx sur Ubuntu 18.04 LTS

  4. Comment installer GitBucket avec Nginx sur Ubuntu 18.04 LTS

  5. Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

Comment installer LEMP sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04 LTS

Comment installer LEMP sur Ubuntu 20.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 20.04 LTS

Comment installer la pile LEMP avec PhpMyAdmin dans Ubuntu 20.04

Comment installer WordPress avec Nginx dans Ubuntu 20.04