Vous êtes sur la page 1sur 7

INSTALLATION PHPMYADMIN

Préambule
Les indications ci-dessous sont destinées à une installation des services web sur un serveur
possédant le système d’exploitation Debian 11.

Il s’agit ici de mettre en place un serveur Web dit "LAMP" afin de pouvoir héberger un site Internet
(WordPress, Joomla, Drupal, ou de développement personnel, etc...) ou encore une application de
type web (les exemples peuvent être nombreux).

Mais qu’est-ce qu’un serveur LAMP ?

Il s'agit d'un serveur qui s'appuie sur 4 composants :

L pour Linux : ici Debian

A pour Apache : c’est le service web

M pour MySQL /ou/ MariaDB, c’est le SGBDR

P pour PHP, c'est-à-dire le moteur ou interpréteur PHP.

PARTIE 4 : Interface web pour le SGBDR

Procédure d’installation
Vous trouverez ci-dessous l’ensemble des commandes nécessaire.
Elles sont identifiées en bleu et en italique, avec un caractère de type courrier.

Vous devez ouvrir une session sur votre serveur Debian en utilisant l’une des deux possibilités :

• la console du serveur
• une console distante avec le protocole SSH.

La session doit être en « superutilisateur » (root) pour simplifier l’administration.


Si vous ouvrez une console distante, il faudra utiliser un compte simple, et une fois ouverte, élever
vos droits en « superutilisateur » avec cette commande
su root

Mettre à jour le cache des paquets


apt update
apt upgrade
apt update

Commençons par télécharger le paquet « phpmyadmin » depuis son dépôt


ATTENTION : cette ligne de commande est une ligne « unique » (pas de coupure ou saut de ligne)
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-
5.1.1-all-languages.zip

Lorsque le paquet est téléchargé, il faut le décompresser


unzip phpMyAdmin-5.1.1-all-languages.zip

Maintenant le contenu de l’archive décompressée dans son dossier de publication


mv phpMyAdmin-5.1.1-all-languages /usr/share/phpMyAdmin

Il faut ensuite créer un dossier pour « phpmyadmin » et un sous-dossier de stockage


temporaire sur le serveur
mkdir -p /var/lib/phpMyAdmin/tmp

Ensuite il faut modifier le propriétaire et le groupe d’appartenance du dossier


chown -R www-data:www-data /var/lib/phpMyAdmin

Pour configurer « phpMyAdmin », il existe un fichier d’exemple (ou de base).


Je vous invite à copier ce fichier en version définitive.
ATTENTION : cette ligne de commande est une ligne « unique » (pas de coupure ou saut de ligne)
cp /usr/share/phpmyadmin/config.sample.inc.php
/usr/share/phpMyAdmin/config.inc.php

Nous allons installer un générateur de mot de passe


apt install pwgen -y

Puis générer un mot de passe très complexe pour un minimum de sécurité


pwgen -s 32 1

Vous obtiendrez un mot de passe assez fort sous cette forme qu’il faut noter avec attention,
ou copier pour le réutiliser dans la configuration : pau9t1SG6lmaeCFxKqeeaY5N4erIa25K
Nous allons maintenant éditer le fichier de configuration
nano /usr/share/phpMyAdmin/config.inc.php

Vous trouverez ci-dessous les lignes à modifier dans le fichier « config.inc.php » :

$cfg['blowfish_secret'] = 'pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; Mot de passe généré avant

$cfg['Servers'][$i]['controluser'] = 'pma'; Utilisateur pour phpmyadmin

$cfg['Servers'][$i]['controlpass'] = 'password'; Mot de passe de l’utilisateur


$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
et toutes les lignes comprises entre celles-ci Pas de
modification
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Après avoir fait les modifications ci-dessus, ajoutez cette ligne dans le fichier (juste après la
ligne « $cfg[‘Servers’]… » :

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp'; Chemin indiqué à la création du dossier…

Enregistrez les modifications en fermant l’éditeur nano (CTRL + X | enregistrer).


Il est fortement recommandé de créer un utilisateur différent pour administrer uniquement
PhpMyAdmin et les autres bases de données.
Nous allons donc d’abord donner tous les droits à l’utilisateur que vous avez définit dans le
fichier de configuration, puis un autre utilisateur qui pourra uniquement gérer les autres
bases de données.
D’abord, commençons par importer la base qui contiendra toutes ces informations.
mysql < /usr/share/phpMyAdmin/sql/create_tables.sql

Ensuite, Il faut entrer dans la console d’administration du moteur MaraDB


mariadb -u root -p

Enfin accordons tous les droits à l’utilisateur défini plus haut (dans le fichier de
configuration) sur la base de données « phpmyadmin »
ATTENTION : cette ligne de commande est une ligne « unique » (pas de coupure ou saut de ligne)
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO
'pma'@'localhost' IDENTIFIED BY 'password';

Bien entendu, il faut adapter « pma » et « password » aux infos insérées dans le fichier de
configuration (informations modifiées dans le fichier « config.inc.php ».
Il est temps de créer un administrateur, par exemple « adminbdd »
CREATE USER adminbdd;

Pour simplifier, nous lui donnerons tous les droits sur toutes les bases de données.
Bien sûr ces droits peuvent être plus restrictifs.
ATTENTION : cette ligne de commande est une ligne « unique » (pas de coupure ou saut de ligne)
GRANT ALL PRIVILEGES ON *.* TO 'adminbdd'@'localhost'
IDENTIFIED BY 'password' WITH GRANT OPTION;
Remarque : cet utilisateur ne pourra se connecter QUE localement. En effet le paramètre
indiqué après le signe « @ » est « localhost » (le serveur local).
Cette information pourra être remplacée par l’IP du réseau depuis lequel cet utilisateur
pourra se connecter (par exemple : 192.168.75.0) ou de façon encore plus restrictive une
adresse IP précise (par exemple : 192.168.75.60).
Au contraire, on pourra permettre la connexion depuis n’importe quel réseau en remplaçant
cette information par « % ».

Dans ce cas la commande devient :


GRANT ALL PRIVILEGES ON *.* TO 'adminbdd'@'l%' IDENTIFIED BY
'password' WITH GRANT OPTION;

Pour terminer, il est important de demander au moteur MariaDB de recharger les droits
appelés aussi privilèges
FLUSH PRIVILEGES;

Il ne reste plus qu’à se déconnecter, ou plutôt fermer la session sur MariaDB


EXIT;

A configuration de PhpMyAdmin est terminée, mais il faut encore configurer le serveur


Apache. En effet, il faut configurer un « serveur virtuel » (virtual host) dans Apache, celui-ci
devant accéder au script de PhpMyAdmin.
Cette solution va simplifier son utilisation en rendant son accès automatique simplement à
partir de son nom.
Commençons par créer le fichier de configuration.
nano /etc/apache2/conf-available/phpmyadmin.conf

Vous devez ensuite ajouter ces lignes dans le fichier ouvert dans l’éditeur Nano
Pour réaliser cette opération, si vous utilisez une console distante (via SSH), il suffira de faire
un copier-coller. Si vous êtes dans la console du serveur, il faudra saisir l’intégralité.
Si vous savez utiliser un système de transfert de fichier (via SSH avec SFTP), alors vous
pouvez créer le fichier localement, insérer dedans les lignes indiquées, puis transférer ce
fichier sur le serveur, dans le dossier : /etc/apache2/conf-available/
Pour permettre un copier-coller sans erreur, le contenu du fichier a été placé à la fin de ce
document dans son intégralité.
N’oubliez pas d’enregistrer les modifications en fermant le fichier si vous l’avez créé avec
Nano.

Activez la nouvelle configuration d’Apache avec cette commande


a2enconf phpmyadmin.conf

Nous allons demander au serveur Apache de recharger sa nouvelle configuration


systemctl reload apache2

Pour s’assurer que le serveur Apache fonctionne bien, demandons au serveur Debian
d’afficher l’état du service web
systemctl status apache2

Vous pouvez vérifier maintenant si l’accès à l’interface web d’administration est fonctionnel.
Pour cela, il suffit d’utiliser l’URL suivante depuis un navigateur installé sur votre PC (ou un
autre client connecté au même réseau que le serveur Debian) :
http://IP-Debian/phpmyadmin (remplacer IP-Debian par l’adresse IPv4)

En remplissant les zones de saisie avec les bonnes informations, vous devriez accéder à
l’interface web de phpmyadmin comme l’exemple ci-dessous.
Remarque :
Si vous souhaitez aller encore plus loin en termes de sécurité, il est possible d’utiliser le
mode d’authentification de type .htaccess.
Si ce sujet vous intéresse, n’hésitez pas à consulter les informations sur ce sujet.

Page suivante, vous trouverez le contenu du fichier phpmyadmin.conf


Pour faciliter sa création, nous vous conseillons de le faire sur votre poste de travail à l’aide
d’un éditeur de texte prévu à cet effet (par exemple notepad++ ou sublimtext),
enregistrer le fichier (au format texte brut) et vérifier son nom et son extension.
Ensuite, il faudra procéder à son transfert (via un service SFTP) sur le serveur web sous
Debian, dans le dossier : /etc/apache2/conf-available/
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php

<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>

php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpMyAdmin/tmp
php_admin_value open_basedir
/usr/share/phpMyAdmin/:/etc/phpMyAdmin/:/var/lib/phpMyAdmin/:/usr/share/php/php-
gettext/:/usr/share/php/php-php-
gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpMyAdmin/:/u
sr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>

php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpMyAdmin/tmp
php_admin_value open_basedir
/usr/share/phpMyAdmin/:/etc/phpMyAdmin/:/var/lib/phpMyAdmin/:/usr/share/php/php-
gettext/:/usr/share/php/php-php-
gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpMyAdmin/:/u
sr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>

</Directory>

# Authorize for setup


<Directory /usr/share/phpMyAdmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpMyAdmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>

# Disallow web access to directories that don't need it


<Directory /usr/share/phpMyAdmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpMyAdmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpMyAdmin/setup/lib>
Require all denied
</Directory>

Vous aimerez peut-être aussi