Mise en place de phpMyAdmin sous debian 10

De Ikoula Wiki
Révision datée du 2 septembre 2020 à 13:31 par Afoiselle43363 (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Jump to navigation Jump to search

Introduction

Le service phpMyAdmin a été créé afin d’aider les utilisateurs dans la gestion de leurs bases de données via une interface web. Dans cet article, nous allons voir comment installer phpMyAdmin afin que vous puissiez l’utiliser pour gérer vos bases de données sur un système d’exploitation Debian 10.

Pré-requis

Pour suivre cet article, vous aurez besoin de :
- Un serveur avec le système d’exploitation Debian 10 installé.
- Les services PHP, Mysql (MariaDB), PHP installé et fonctionnel sur votre serveur.

Installation de phpMyAdmin

Avant de procéder à l'installation de phpMyAdmin et de ces paquets recommandés, nous vous invitons a mettre a jour les différents paquets de votre serveur si vous ne l'avez pas fait récemment via la commande suivante:

apt-get update

Installer ensuite les paquets recommandés de phpMyAdmin sur votre serveur.

apt-get install php-mbstring php-zip php-gd php-mysql

Télécharger ensuite le code source de phpMyAdmin depuis le site officiel, car actuellement ce dernier n'est pas disponible dans les paquets officiels du repos de Debian 10.

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.zip

Vous pouvez également vérifier les derniers versions de phpMyAdmin sur le liens suivant https://www.phpmyadmin.net/downloads/ et remplacer la version téléchargée par celle souhaitée. Nous vous invitons a toujours utiliser les versions stables de phpMyAdmin.
Extraire l'archive télécharger sur votre serveur et déplacer les dossiers une fois l'extraction terminée.

tar xvf phpMyAdmin-4.9.5-all-languages.tar.gz
mv phpMyAdmin-4.9.5-all-languages/ /usr/share/phpmyadmin

Configuration de phpMyAdmin

Créer un dossier temporaire pour phpMyAdmin et changer les droits de ce dossier pour www-data.

mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin

Faire une copie des fichiers de configuration extrait plus tôt et renommez le en config.inc.php.

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Générer un mot de passe de 32 caractères et éditer le fichier de configuration suivant:

vi /usr/share/phpmyadmin/config.inc.php
$cfg['blowfish_secret'] = 'votremotdepassede32caracteres'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
…
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'votremotdepasse';  

Vous pouvez utiliser cette outil https://phpsolved.com/phpmyadmin-blowfish-secret-generator/ pour générer un mot de passe blowfish de 32 caractères.
Ajouter également une ligne de configuration à la fin du fichier pour la configuration du dossier temp créé précédemment.

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Toujours dans le même fichier de configuration, dé-commenter toute la section databases and tables, ci dessous un extrait de cette partie:

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Sauvegarder et quitter ce fichier de configuration.
Créer la base de données et les tables pour phpMyAdmin.

mysql < /usr/share/phpmyadmin/sql/create_tables.sql

Se connecter à MySQL en ligne de commande sur votre serveur et créer l'utilisateur pma avec ces droits.

$ mysql
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'votremotdepasse';

Vous pouvez également créer d’autre utilisateur mysql lors de cette étape si besoin.

Configuration d'Apache pour phpMyAdmin

Créer un fichier dans /etc/apache2/conf-available/phpmyadmin.conf avec cette configuration d'Apache:

vi /etc/apache2/conf-available/phpmyadmin.conf
# phpMyAdmin default Apache configuration

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/:/usr/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-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/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>

Activer, tester votre configuration et redémarrer Apache.

a2enconf phpmyadmin.conf
apache2ctl -t
systemctl reload apache2

Accéder à l'interface phpMyAdmin via votre navigateur et lu'rl suivante: https://votre_ip/phpmyadmin

Sécurisation de phpMyAdmin

Si vous le souhaitez, vous pouvez limiter l'accès a votre interface phpMyAdmin à votre/vos IPs via ces options dans votre fichier de configuration:

 …
 </IfModule>
Order deny,allow
Deny from all
# Commentaire
Allow from VotreIP

</Directory>
…

Vous pouvez également mettre en place une authentification via un fichier .htaccess pour votre interface phpmyadmin via cette option dans votre fichier de configuration d'Apache:

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    AllowOverride All
…

Créer également un fichier .htaccess avec les options suivantes:

vi /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/share/phpmyadmin/.htpasswd
Require valid-user

Créer ensuite le fichier et utilisateur initial via la commande htpasswd

htpasswd -c /usr/share/phpmyadmin/.htpasswd votreuser

Vous pouvez également utiliser cette commande pour ajouter un utilisateur

htpasswd /etc/phpmyadmin/.htpasswd nouveauuser

N'oubliez pas de redémarrer Apache une fois cette configuration mis en place

apache2ctl -t
systemctl restart apache2

Une fois cette configuration en place, l'accès à votre phpMyAdmin vous renverra maintenant vers une authentification additionnelle que vous venez de créer.

Conclusion

Dans cet article, vous venez donc de voir la mise en place de phpMyAdmin pour Apache sur le système d'exploitation Debian 10.



Cet article vous a semblé utile ?

0



Vous n'êtes pas autorisé à publier de commentaire.