{"id":1741,"date":"2022-12-06T22:15:35","date_gmt":"2022-12-06T21:15:35","guid":{"rendered":"https:\/\/www.webodesign.net\/?p=1741"},"modified":"2022-12-13T10:20:39","modified_gmt":"2022-12-13T09:20:39","slug":"installer-phpmyadmin-sur-debian-11-et-apache","status":"publish","type":"post","link":"https:\/\/www.webodesign.net\/?p=1741","title":{"rendered":"Installer PhpMyAdmin sur Debian 11 et Apache"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-6b4be6b8 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<div class=\"wp-block-columns is-layout-flex wp-container-11\">\n<div class=\"wp-block-column is-layout-flow\">\n<div class=\"wp-block-group is-layout-flow\">\n<div class=\"wp-block-group is-layout-constrained\" style=\"border-style:none;border-width:0px;border-radius:0px\">\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-ed843bbf     \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tSommaire\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap\">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#pr\u00e9sentation\" class=\"uagb-toc-link__trigger\">Pr\u00e9sentation<\/a><li class=\"uagb-toc__list\"><a href=\"#installation-de-phpmyadmin\" class=\"uagb-toc-link__trigger\">Installation de PhpMyAdmin<\/a><li class=\"uagb-toc__list\"><a href=\"#iii-cr\u00e9ation-dun-admin-pour-phpmyadmin\" class=\"uagb-toc-link__trigger\">III. Cr\u00e9ation d&#039;un admin pour PhpMyAdmin<\/a><li class=\"uagb-toc__list\"><a href=\"#iv-int\u00e9gration-de-phpmyadmin-\u00e0-apache\" class=\"uagb-toc-link__trigger\">IV. Int\u00e9gration de PhpMyAdmin \u00e0 Apache<\/a><li class=\"uagb-toc__list\"><a href=\"#v-acc\u00e9der-\u00e0-phpmyadmin\" class=\"uagb-toc-link__trigger\">V. Acc\u00e9der \u00e0 PhpMyAdmin<\/a><li class=\"uagb-toc__list\"><a href=\"#mettre-en-place-une-connexion-chiffr\u00e9e\" class=\"uagb-toc-link__trigger\">Mettre en place une connexion chiffr\u00e9e<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-cyan-blue-border-color has-background is-layout-flow\" style=\"border-style:dotted;border-width:2px;border-radius:8px;background-color:#fffdf8;padding-right:7px;padding-bottom:15px;padding-left:7px\">\n<div class=\"qubely-block-accordion  qubely-block-d34844\" data-item-toggle=\"true\">\n<div class=\"wp-block-qubely-accordion-item qubely-block-e8bf02\"><div class=\"qubely-accordion-item qubely-type-fill qubely-accordion-active\"><div class=\"qubely-accordion-panel qubely-icon-position-right\"><span class=\"qubely-accordion-panel-handler\" role=\"button\"><span class=\"qubely-accordion-panel-handler-label\">Pr\u00e9sentation<\/span><span class=\"qubely-accordion-icon fa fa-plus\"><\/span><\/span><\/div><div class=\"qubely-accordion-body\" style=\"display:block\"><div itemprop=\"text\">\n<h4 class=\"has-text-color wp-block-heading\" id=\"1-i-pr%C3%A9sentation\" style=\"color:#fffdf8;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:1px\">Pr\u00e9sentation<\/h4>\n\n\n\n<p><strong>Nous allons installer PhpMyAdmin sur un serveur Debian 11 (<a href=\"https:\/\/www.it-connect.fr\/cours-tutoriels\/administration-systemes\/linux\/\">Linux<\/a>) avec <a href=\"https:\/\/www.it-connect.fr\/cours-tutoriels\/administration-systemes\/serveur-web\/apache\/\">Apache<\/a>.<\/strong> Cette proc\u00e9dure \u00e9tape par \u00e9tape part du principe que vous disposez d\u00e9j\u00e0 d&rsquo;un socle LAMP op\u00e9rationnel, c&rsquo;est-\u00e0-dire qu&rsquo;Apache, MySQL\/MariaDB et PHP sont d\u00e9j\u00e0 en place sur la machine.<\/p>\n\n\n\n<ul>\n<li>Article &#8211; <a href=\"https:\/\/www.webodesign.net\/?page_id=1615\" data-type=\"page\" data-id=\"1615\">Installation d\u2019un serveur LAMP<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n<\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-cyan-blue-border-color has-background is-layout-flow\" style=\"border-style:dotted;border-width:2px;border-radius:8px;background-color:#fffdf8;padding-right:7px;padding-bottom:15px;padding-left:7px\">\n<div class=\"qubely-block-accordion  qubely-block-d34844\" data-item-toggle=\"true\">\n<div class=\"wp-block-qubely-accordion-item qubely-block-99d821\"><div class=\"qubely-accordion-item qubely-type-fill qubely-accordion-active\"><div class=\"qubely-accordion-panel qubely-icon-position-right\"><span class=\"qubely-accordion-panel-handler\" role=\"button\"><span class=\"qubely-accordion-panel-handler-label\">Installation de PhpMyAdmin<\/span><span class=\"qubely-accordion-icon fa fa-plus\"><\/span><\/span><\/div><div class=\"qubely-accordion-body\" style=\"display:block\"><div itemprop=\"text\">\n<h4 class=\"has-text-color wp-block-heading\" id=\"2-ii-installation-de-phpmyadmin\" style=\"color:#fffdf8;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:1px\">Installation de PhpMyAdmin<\/h4>\n\n\n\n<p>L&rsquo;installation de PhpMyAdmin ne s&rsquo;effectue pas comme un paquet classique, mais plut\u00f4t sur le m\u00eame principe qu&rsquo;une application web. Il faut que l&rsquo;on t\u00e9l\u00e9charge les sources \u00e0 partir du site officiel, directement dans le dossier \u00ab\u00a0\/tmp\u00a0\u00bb (ou ailleurs) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">cd \/tmp\nwget https:\/\/files.phpmyadmin.net\/phpMyAdmin\/5.2.0\/phpMyAdmin-5.2.0-all-languages.zip<\/code><\/pre>\n\n\n\n<p>Avant de faire la commande \u00ab\u00a0wget\u00a0\u00bb je vous invite \u00e0 acc\u00e9der \u00e0 <a rel=\"noreferrer noopener\" href=\"https:\/\/files.phpmyadmin.net\/\" target=\"_blank\">la page de t\u00e9l\u00e9chargement de PhpMyAdmin<\/a> afin de r\u00e9cup\u00e9rer le lien vers la derni\u00e8re version. Ici, c&rsquo;est bien la derni\u00e8re version stable : 5.2.0.<\/p>\n\n\n\n<p>Ensuite, nous devons extraire le contenu de cette archive ZIP avec la commande \u00ab\u00a0unzip\u00a0\u00bb. Elle n&rsquo;est pas install\u00e9e par d\u00e9faut sur Debian 11. Vous pouvez l&rsquo;installer avec cette commande :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo apt-get update\nsudo apt-get install unzip<\/code><\/pre>\n\n\n\n<p>Ensuite, on d\u00e9compresse l&rsquo;archive ZIP dans le r\u00e9pertoire courant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">unzip phpMyAdmin-5.2.0-all-languages.zip<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"800\" height=\"292\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-1.png\" alt=\"\" class=\"wp-image-1742\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-1.png 800w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-1-300x110.png 300w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-1-768x280.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>On va d\u00e9placer le dossier complet vers \u00ab\u00a0\/usr\/share\u00a0\u00bb dans un nouveau dossier nomm\u00e9 \u00ab\u00a0phpmyadmin\u00a0\u00bb. Ce qui donne :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo mv phpMyAdmin-5.2.0-all-languages \/usr\/share\/phpmyadmin<\/code><\/pre>\n\n\n\n<p>Ensuite, on cr\u00e9e un dossier distinct pour les fichiers temporaires :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo mkdir -p \/var\/lib\/phpmyadmin\/tmp<\/code><\/pre>\n\n\n\n<p>Puis, on attribue les droits sur le dossier racine \u00ab\u00a0<em>phpmyadmin<\/em>\u00a0\u00bb \u00e0 l&rsquo;utilisateur associ\u00e9 \u00e0 Apache (www-data) afin qu&rsquo;il soit propri\u00e9taire. Nous pr\u00e9ciserons le chemin vers le dossier \u00ab\u00a0tmp\u00a0\u00bb dans la configuration de PhpMyAdmin.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo chown -R www-data:www-data \/var\/lib\/phpmyadmin\/<\/code><\/pre>\n\n\n\n<p>PhpMyAdmin est fourni avec un template pour le fichier de configuration, alors on va cr\u00e9er une copie de ce template pour ne pas partir de z\u00e9ro :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">cp \/usr\/share\/phpmyadmin\/config.sample.inc.php \/usr\/share\/phpmyadmin\/config.inc.php<\/code><\/pre>\n\n\n\n<p>Afin d&rsquo;utiliser le mode d&rsquo;authentification bas\u00e9 sur les cookies, nous devons g\u00e9n\u00e9rer une cha\u00eene al\u00e9atoire qui est une sorte de passphrase au sein du fichier de configuration. Il doit s&rsquo;agir d&rsquo;une cha\u00eene de 32 caract\u00e8res. Un cookie permanent stockera l&rsquo;identifiant sur votre machine tandis que le mot de passe est g\u00e9r\u00e9 par un cookie temporaire.<\/p>\n\n\n\n<p>On peut g\u00e9n\u00e9rer cette cha\u00eene al\u00e9atoire avec la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl rand -base64 32<\/code><\/pre>\n\n\n\n<p>Copiez la valeur retourn\u00e9e en sortie. Nous allons l&rsquo;ins\u00e9rer dans le fichier de configuration de PhpMyAdmin. Ouvrez le fichier avec nano (ou un autre \u00e9diteur de texte) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">nano \/usr\/share\/phpmyadmin\/config.inc.php<\/code><\/pre>\n\n\n\n<p>Collez la valeur au niveau de l&rsquo;option \u00ab\u00a0<em>blowfish_secret<\/em>\u00ab\u00a0, comme ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$cfg[&#039;blowfish_secret&#039;] = &#039;deJ8reLGV1cXPyd32454\/um\/EGWRef\/14Jo7tg112WM=&#039;;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"284\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-2-1024x284.png\" alt=\"\" class=\"wp-image-1744\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-2-1024x284.png 1024w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-2-300x83.png 300w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-2-768x213.png 768w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-2.png 1041w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ensuite, il faut d\u00e9finir un user et un mot de passe que PhpMyAdmin va utiliser pour se connecter \u00e0 sa base de donn\u00e9es et stocker ses donn\u00e9es. Pour cela, il y a deux options \u00e0 d\u00e9commenter et modifier pour \u00e9viter d&rsquo;avoir les valeurs par d\u00e9faut :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$cfg[&#039;Servers&#039;][$i][&#039;controluser&#039;] = &#039;pma2022&#039;;\n$cfg[&#039;Servers&#039;][$i][&#039;controlpass&#039;] = &#039;MotDePasseComplexe&#039;;<\/code><\/pre>\n\n\n\n<p>D\u00e9commenter les autres options, comme sur l&rsquo;image ci-dessous.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"800\" height=\"505\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-3.png\" alt=\"\" class=\"wp-image-1745\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-3.png 800w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-3-300x189.png 300w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-3-768x485.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Enfin, ajoutez cette directive pour d\u00e9clarer le r\u00e9pertoire temporaire (cr\u00e9\u00e9 pr\u00e9c\u00e9demment) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$cfg[&#039;TempDir&#039;] = &#039;\/var\/lib\/phpmyadmin\/tmp&#039;;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"800\" height=\"120\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-4.png\" alt=\"\" class=\"wp-image-1746\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-4.png 800w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-4-300x45.png 300w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-4-768x115.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Sauvegardez et fermez le fichier.<\/p>\n\n\n\n<p>Avant de cr\u00e9er notre propre compte \u00ab\u00a0admin\u00a0\u00bb distinct pour administrer PhpMyAdmin, on va cr\u00e9er la base de donn\u00e9es de l&rsquo;outil. Pour cela, on va utiliser le script fournit :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">mysql -u root -p &lt; \/usr\/share\/phpmyadmin\/sql\/create_tables.sql<\/code><\/pre>\n\n\n\n<p>Ensuite, on va se connecter \u00e0 l&rsquo;instance MySQL\/MariaDB pour donner les droits sur cette base de donn\u00e9es \u00e0 l&rsquo;utilisateur \u00ab\u00a0pma2022\u00a0\u00bb :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">mysql -u root -p<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Une fois connect\u00e9 avec le prompt \u00ab\u00a0mysql&gt;\u00a0\u00bb \u00e0 l&rsquo;\u00e9cran, ex\u00e9cutez les requ\u00eates SQL suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql\">CREATE USER &#039;pma2022&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;MotdePasseComplexe&#039;;\nGRANT ALL PRIVILEGES ON phpmyadmin.* TO &#039;pma2022&#039;@&#039;localhost&#039; WITH GRANT OPTION;\nFLUSH PRIVILEGES;<\/code><\/pre>\n\n\n\n<p>Les informations (utilisateur et mot de passe) doivent correspondre aux valeurs d\u00e9finies dans le fichier de configuration.<\/p>\n<\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-cyan-blue-border-color has-background is-layout-flow\" style=\"border-style:dotted;border-width:2px;border-radius:8px;background-color:#fffdf8;padding-right:7px;padding-bottom:15px;padding-left:7px\">\n<div class=\"qubely-block-accordion  qubely-block-d34844\" data-item-toggle=\"true\">\n<div class=\"wp-block-qubely-accordion-item qubely-block-04e4c7\"><div class=\"qubely-accordion-item qubely-type-fill qubely-accordion-active\"><div class=\"qubely-accordion-panel qubely-icon-position-right\"><span class=\"qubely-accordion-panel-handler\" role=\"button\"><span class=\"qubely-accordion-panel-handler-label\">Cr\u00e9ation d&rsquo;un admin pour PhpMyAdmin<\/span><span class=\"qubely-accordion-icon fa fa-plus\"><\/span><\/span><\/div><div class=\"qubely-accordion-body\" style=\"display:block\"><div itemprop=\"text\">\n<h4 class=\"has-text-color wp-block-heading\" id=\"3-iii-cr%C3%A9ation-dun-admin-pour-phpmyadmin\" style=\"color:#fffdf8;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:19px\">III. Cr\u00e9ation d&rsquo;un admin pour PhpMyAdmin<\/h4>\n\n\n\n<p>Nous allons profiter d&rsquo;\u00eatre connect\u00e9 \u00e0 la console MySQL pour cr\u00e9er un nouveau compte administrateur qui aura la main sur l&rsquo;ensemble des bases de donn\u00e9es. Nous utiliserons ce compte pour se connecter \u00e0 PhpMyAdmin.<\/p>\n\n\n\n<p>Voici les requ\u00eates SQL \u00e0 ex\u00e9cuter pour cr\u00e9er un utilisateur nomm\u00e9 \u00ab\u00a0<em>pma-admin<\/em>\u00a0\u00bb avec le mot de passe \u00ab\u00a0<em>MotdePasseComplexe2<\/em>\u00ab\u00a0.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"sql\" class=\"language-sql\">CREATE USER &#039;pma-admin&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;MotdePasseComplexe2&#039;;\nGRANT ALL PRIVILEGES ON *.* TO &#039;pma-admin&#039;@&#039;localhost&#039; WITH GRANT OPTION;\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n\n\n\n<p>Contrairement \u00e0 l&rsquo;utilisateur pr\u00e9c\u00e9dent, celui-ci a les droits sur toutes les BDD de l&rsquo;instant MySQL, d&rsquo;o\u00f9 le \u00ab\u00a0*.*\u00a0\u00bb dans la requ\u00eate GRANT.<\/p>\n<\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-cyan-blue-border-color has-background is-layout-flow\" style=\"border-style:dotted;border-width:2px;border-radius:8px;background-color:#fffdf8;padding-right:7px;padding-bottom:15px;padding-left:7px\">\n<div class=\"qubely-block-accordion  qubely-block-d34844\" data-item-toggle=\"true\">\n<div class=\"wp-block-qubely-accordion-item qubely-block-ad76b9\"><div class=\"qubely-accordion-item qubely-type-fill qubely-accordion-active\"><div class=\"qubely-accordion-panel qubely-icon-position-right\"><span class=\"qubely-accordion-panel-handler\" role=\"button\"><span class=\"qubely-accordion-panel-handler-label\">Int\u00e9gration de PhpMyAdmin \u00e0 Apache<\/span><span class=\"qubely-accordion-icon fa fa-plus\"><\/span><\/span><\/div><div class=\"qubely-accordion-body\" style=\"display:block\"><div itemprop=\"text\">\n<h4 class=\"has-text-color wp-block-heading\" id=\"4-iv-int%C3%A9gration-de-phpmyadmin-%C3%A0-apache\" style=\"color:#fffdf8;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:1px\">IV. Int\u00e9gration de PhpMyAdmin \u00e0 Apache<\/h4>\n\n\n\n<p>PhpMyAdmin est install\u00e9 et configur\u00e9 mais il nous manque une \u00e9tape cruciale : la publication de l&rsquo;application via Apache afin de pouvoir y acc\u00e9der avec un navigateur.<\/p>\n\n\n\n<p>Nous allons cr\u00e9er un fichier de configuration propre \u00e0 PhpMyAdmin :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo nano \/etc\/apache2\/conf-available\/phpmyadmin.conf<\/code><\/pre>\n\n\n\n<p>Voici le contenu \u00e0 int\u00e9grer au fichier de configuration (peut-\u00eatre adapt\u00e9) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"apacheconf\" class=\"language-apacheconf\">Alias \/pma \/usr\/share\/phpmyadmin\n\n&lt;Directory \/usr\/share\/phpmyadmin&gt;\n  Options SymLinksIfOwnerMatch\n  DirectoryIndex index.php\n\n  # Autoriser acc\u00e8s depuis certaines adresses IP \/ sous-r\u00e9seau\n  Order deny,allow\n  Deny from all\n  Allow from 192.168.1.0\/24\n\n  &lt;IfModule mod_php.c&gt;\n    &lt;IfModule mod_mime.c&gt;\n      AddType application\/x-httpd-php .php\n    &lt;\/IfModule&gt;\n    &lt;FilesMatch &quot;.+\\.php$&quot;&gt;\n      SetHandler application\/x-httpd-php\n    &lt;\/FilesMatch&gt;\n\n    php_value include_path .\n    php_admin_value upload_tmp_dir \/var\/lib\/phpmyadmin\/tmp\n    \n    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\/\n    \n    php_admin_value mbstring.func_overload 0\n  &lt;\/IfModule&gt;\n\n&lt;\/Directory&gt;\n\n# D\u00e9sactiver acc\u00e8s web sur certains dossiers\n&lt;Directory \/usr\/share\/phpmyadmin\/templates&gt;\n  Require all denied\n&lt;\/Directory&gt;\n&lt;Directory \/usr\/share\/phpmyadmin\/libraries&gt;\n  Require all denied\n&lt;\/Directory&gt;\n&lt;Directory \/usr\/share\/phpmyadmin\/setup\/lib&gt;\n  Require all denied\n&lt;\/Directory&gt;<\/code><\/pre>\n\n\n\n<p>Quelques explications :<\/p>\n\n\n\n<ul>\n<li>Le fait d&rsquo;indiquer \u00ab\u00a0<em>Alias \/pma \/usr\/share\/phpmyadmin<\/em>\u00a0\u00bb cela signifie qu&rsquo;il faudra pr\u00e9ciser \u00ab\u00a0\/pma\u00a0\u00bb \u00e0 la fin de l&rsquo;URL pour acc\u00e9der \u00e0 PhpMyAdmin. Vous pouvez mettre autre chose, mais seulement je vous recommande de ne pas mettre \u00ab\u00a0phpmyadmin\u00a0\u00bb afin que ce ne soit pas trop \u00e9vident. Cela est d&rsquo;autant plus important si votre PhpMyAdmin est accessible en mode public car les robots scans le web \u00e0 la recherche d&rsquo;interface PhpMyAdmin.<\/li>\n\n\n\n<li>On bloque l&rsquo;acc\u00e8s aux dossiers \u00ab\u00a0templates\u00a0\u00bb, \u00ab\u00a0libraries\u00a0\u00bb et \u00ab\u00a0setup\/lib\u00a0\u00bb.<\/li>\n\n\n\n<li>On autorise seulement l&rsquo;acc\u00e8s \u00e0 PhpMyAdmin \u00e0 partir des h\u00f4tes connect\u00e9s au LAN \u00ab\u00a0192.168.1.0\/24\u00a0\u00bb car dans cet exemple, PhpMyAdmin n&rsquo;est pas expos\u00e9 publiquement. Je pense qu&rsquo;il faut restreindre l&rsquo;acc\u00e8s au maximum. Pour retirer cette restriction, supprimez les trois lignes sous \u00ab\u00a0Autoriser acc\u00e8s depuis certaines adresses IP \/ sous-r\u00e9seau\u00a0\u00bb.<\/li>\n<\/ul>\n\n\n\n<p>Enregistrez le fichier et activez ce fichier de config (qui s&rsquo;appuie sur le VirtualHost par d\u00e9faut, mais on pourrait cr\u00e9er un vhost distinct) :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo a2enconf phpmyadmin.conf<\/code><\/pre>\n\n\n\n<p>Validez la configuration, et si c&rsquo;est OK rechargez Apache :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo apachectl configtest\nsudo systemctl reload apache2<\/code><\/pre>\n\n\n\n<p>Le moment est venu de tester l&rsquo;acc\u00e8s \u00e0 PhpMyAdmin !<\/p>\n<\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-cyan-blue-border-color has-background is-layout-flow\" style=\"border-style:dotted;border-width:2px;border-radius:8px;background-color:#fffdf8;padding-right:7px;padding-bottom:15px;padding-left:7px\">\n<div class=\"qubely-block-accordion  qubely-block-d34844\" data-item-toggle=\"true\">\n<div class=\"wp-block-qubely-accordion-item qubely-block-183e2d\"><div class=\"qubely-accordion-item qubely-type-fill qubely-accordion-active\"><div class=\"qubely-accordion-panel qubely-icon-position-right\"><span class=\"qubely-accordion-panel-handler\" role=\"button\"><span class=\"qubely-accordion-panel-handler-label\">Affichage d\u2019une page d\u2019erreur personnalis\u00e9e<\/span><span class=\"qubely-accordion-icon fa fa-plus\"><\/span><\/span><\/div><div class=\"qubely-accordion-body\" style=\"display:block\"><div itemprop=\"text\">\n<h4 class=\"has-text-color wp-block-heading\" id=\"5-v-acc%C3%A9der-%C3%A0-phpmyadmin\" style=\"color:#fffdf8;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:1px\">V. Acc\u00e9der \u00e0 PhpMyAdmin<\/h4>\n\n\n\n<p>Ouvrez un navigateur et acc\u00e9dez \u00e0 l&rsquo;adresse suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"markup\" class=\"language-markup\">http:\/\/&lt;ip-de-votre-serveur&gt;\/pma<\/code><\/pre>\n\n\n\n<p>Je vous rappelle que la valeur \u00ab\u00a0pma\u00a0\u00bb d\u00e9pend de l&rsquo;option \u00ab\u00a0<em>alias<\/em>\u00a0\u00bb d\u00e9finie pr\u00e9c\u00e9demment. Vous arrivez sur une page de connexion, vous devez vous connecter avec le compte \u00ab\u00a0pma-admin\u00a0\u00bb que l&rsquo;on a d\u00e9j\u00e0 cr\u00e9\u00e9.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"433\" height=\"451\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-5.png\" alt=\"\" class=\"wp-image-1747\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-5.png 433w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-5-288x300.png 288w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><\/figure>\n\n\n\n<p>Ensuite, l&rsquo;interface de PhpMyAdmin appara\u00eet avec un acc\u00e8s sur toutes les bases de donn\u00e9es existantes et la possibilit\u00e9 de cr\u00e9er une nouvelle BDD, etc&#8230;. Il ne reste plus qu&rsquo;\u00e0 profiter de l&rsquo;outil.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"434\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-1024x434.png\" alt=\"\" class=\"wp-image-1748\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-1024x434.png 1024w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-300x127.png 300w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-768x325.png 768w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6.png 1050w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Pour finir, je vous invite \u00e0 supprimer le dossier \u00ab\u00a0setup\u00a0\u00bb car il n&rsquo;a pas d&rsquo;int\u00e9r\u00eat. Au cas o\u00f9 on laissera la directive dans la config d&rsquo;Apache pour refuser l&rsquo;acc\u00e8s \u00e0 ce dossier.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">rm \/usr\/share\/phpmyadmin\/setup\/ -Rf<\/code><\/pre>\n\n\n\n<p><strong>PhpMyAdmin est en place sur votre serveur Debian !<\/strong><\/p>\n\n\n\n<p>Pour aller plus loin dans la s\u00e9curisation de PhpMyAdmin, vous pouvez regarder la documentation officielle : <a href=\"https:\/\/docs.phpmyadmin.net\/fr\/latest\/setup.html#securing-your-phpmyadmin-installation\" target=\"_blank\" rel=\"noreferrer noopener\">S\u00e9curisation PhpMyAdmin<\/a>.<\/p>\n\n\n\n<p>Si votre PhpMyAdmin est accessible publiquement, je vous recommande de le basculer en HTTPS et d&rsquo;ajouter l&rsquo;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.it-connect.fr\/proteger-une-page-web-avec-htaccess-et-htpasswd\/\" target=\"_blank\">authentification Apache \u00ab\u00a0htpasswd\u00a0\u00bb<\/a> en compl\u00e9ment pour avoir une authentification suppl\u00e9mentaire avant de pouvoir acc\u00e9der \u00e0 la page de connexion PhpMyAdmin.<\/p>\n<\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-border-color has-vivid-cyan-blue-border-color has-background is-layout-flow\" style=\"border-style:dotted;border-width:2px;border-radius:8px;background-color:#fffdf8;padding-right:7px;padding-bottom:15px;padding-left:7px\">\n<div class=\"qubely-block-accordion  qubely-block-d34844\" data-item-toggle=\"true\">\n<div class=\"wp-block-qubely-accordion-item qubely-block-a579f6\"><div class=\"qubely-accordion-item qubely-type-fill qubely-accordion-active\"><div class=\"qubely-accordion-panel qubely-icon-position-right\"><span class=\"qubely-accordion-panel-handler\" role=\"button\"><span class=\"qubely-accordion-panel-handler-label\">Mettre en place une connexion chiffr\u00e9e<\/span><span class=\"qubely-accordion-icon fa fa-plus\"><\/span><\/span><\/div><div class=\"qubely-accordion-body\" style=\"display:block\"><div itemprop=\"text\">\n<h4 class=\"has-text-color wp-block-heading\" id=\"5-v-acc%C3%A9der-%C3%A0-phpmyadmin\" style=\"color:#fffdf8;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:1px\">Mettre en place une connexion chiffr\u00e9e<\/h4>\n\n\n\n<p>Pour cr\u00e9er une connexion s\u00e9curis\u00e9e on va cr\u00e9er le r\u00e9pertoire<strong> \/etc\/mysql <\/strong>et <strong>\/etc\/mysql\/ssl<\/strong>. On va sous<strong> \/etc\/mysql\/ssl <\/strong>et on g\u00e9n\u00e8re une cl\u00e9 RSA priv\u00e9e pour l&rsquo;autorit\u00e9 de certification maison (CA pour Certificate Autority). Il est bien \u00e9vident que les certificats et cl\u00e9 de votre CA ne seront valables que sur votre seul r\u00e9seau interne, \u00e0 moins que vous soyiez une CA reconnue et enregistr\u00e9e sur internet ! Si votre site est accessible par internet je vous conseille de cr\u00e9er un certificat qui sera valable sur internet avec <a href=\"https:\/\/letsencrypt.org\/\">let&rsquo;s encrypt<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">root@vmi820488:~# cd \/etc\/mysql\/\nroot@vmi820488:\/etc\/mysql# mkdir ssl\nroot@vmi820488:\/etc\/mysql# cd ssl\nopenssl genrsa 2048 &gt; ca-key.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Generating RSA private key, 2048 bit long modulus (2 primes)\n..........................+++++\n....................................................+++++\ne is 65537 (0x010001)\nroot@vmi820488:\/etc\/mysql\/ssl#\nroot@vmi820488:\/etc\/mysql\/ssl# ls\nca-key.pem<\/code><\/pre>\n\n\n\n<p>on cr\u00e9e maintenant le certificat du CA bas\u00e9 sur la cl\u00e9 pr\u00e9c\u00e9demment cr\u00e9\u00e9e en tapant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">You are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter &#039;.&#039;, the field will be left blank.\n-----\nCountry Name (2 letter code) [AU]:FR\nState or Province Name (full name) [Some-State]:\nLocality Name (eg, city) []:\nOrganization Name (eg, company) [Internet Widgits Pty Ltd]:\nOrganizational Unit Name (eg, section) []:\nCommon Name (e.g. server FQDN or YOUR name) []:ca-localhost\nEmail Address []:angelfree.web@gmail.com\n\nroot@vmi820488:\/etc\/mysql\/ssl# ls\nca-cert.pem  ca-key.pem<\/code><\/pre>\n\n\n\n<p>Les fichiers <strong>ca-cert.pem<\/strong> (certificat) et <strong>ca-key.pem<\/strong> (la cl\u00e9 associ\u00e9e au certificat) ont \u00e9t\u00e9 cr\u00e9\u00e9s.<\/p>\n\n\n\n<p>Maintenant je cr\u00e9e un certificat pour le serveur en tapant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl req -newkey rsa:2048 -days 365000 -nodes -keyout server-key.pem -out server-req.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Ignoring -days; not generating a certificate\nGenerating a RSA private key\n.................+++++\n...............................................................................................................................................................................................................................+++++\nwriting new private key to &#039;server-key.pem&#039;\n-----\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter &#039;.&#039;, the field will be left blank.\n-----\nCountry Name (2 letter code) [AU]:FR\nState or Province Name (full name) [Some-State]:None\nLocality Name (eg, city) []:None\nOrganization Name (eg, company) [Internet Widgits Pty Ltd]:None\nOrganizational Unit Name (eg, section) []:None\nCommon Name (e.g. server FQDN or YOUR name) []:localhost\nEmail Address []:angelfree.web@gmail.com\n\nPlease enter the following &#039;extra&#039; attributes\nto be sent with your certificate request\nA challenge password []:\nAn optional company name []:\n\nroot@vmi820488:\/etc\/mysql\/ssl# ls\nca-cert.pem  ca-key.pem  server-key.pem  server-req.pem<\/code><\/pre>\n\n\n\n<p>Attention pour le nom du serveur il faut mettre le nom de notre serveur tel qu&rsquo;on le retrouve dans le fichier <strong>\/etc\/hosts<\/strong>.<\/p>\n\n\n\n<p>Maintenant on cr\u00e9e la cl\u00e9 RSA du serveur :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl rsa -in server-key.pem -out server-key.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">writing RSA key<\/code><\/pre>\n\n\n\n<p>On signe le certificat du serveur :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl x509 -req -in server-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Signature ok\nsubject=C = FR, ST = None, L = None, O = None, OU = None, CN = vmi820488, emailAddress = angelfree.web@gmail.com\nGetting CA Private Key\n\nroot@vmi820488:\/etc\/mysql\/ssl# ls\nca-cert.pem  ca-key.pem  server-cert.pem  server-key.pem  server-req.pem<\/code><\/pre>\n\n\n\n<p>Les fichiers suppl\u00e9mentaires suivants <strong>server-cert.pem<\/strong>,<strong> server-key.pem<\/strong> et <strong>server-req.pem<\/strong> on \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9s.<\/p>\n\n\n\n<p>On cr\u00e9e maintenant le certificat du client<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl req -newkey rsa:2048 -days 365000 -nodes -keyout client-key.pem -out client-req.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Ignoring -days; not generating a certificate\nGenerating a RSA private key\n.......................+++++\n..................+++++\nwriting new private key to &#039;client-key.pem&#039;\n-----\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter &#039;.&#039;, the field will be left blank.\n-----\nCountry Name (2 letter code) [AU]:FR\nState or Province Name (full name) [Some-State]:None\nLocality Name (eg, city) []:None\nOrganization Name (eg, company) [Internet Widgits Pty Ltd]:None\nOrganizational Unit Name (eg, section) []:None\nCommon Name (e.g. server FQDN or YOUR name) []:client-localhost\nEmail Address []:angelfree.web@gmail.com\n\nPlease enter the following &#039;extra&#039; attributes\nto be sent with your certificate request\nA challenge password []:\nAn optional company name []:None\n\nroot@vmi820488:\/etc\/mysql\/ssl# ls\nca-cert.pem  ca-key.pem  client-key.pem  client-req.pem  server-cert.pem  server-key.pem  server-req.pem<\/code><\/pre>\n\n\n\n<p>On cr\u00e9e la cl\u00e9 RSA du client :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl rsa -in client-key.pem -out client-key.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">writing RSA key<\/code><\/pre>\n\n\n\n<p>Et on signe le certificat du client :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl x509 -req -in client-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Signature ok\nsubject=C = FR, ST = None, L = None, O = None, OU = None, CN = vmi820488, emailAddress = angelfree.web@gmail.com\nGetting CA Private Key\n\nroot@vmi820488:\/etc\/mysql\/ssl# ls\nca-cert.pem  ca-key.pem  client-cert.pem  client-key.pem  client-req.pem  server-cert.pem  server-key.pem  server-req.pem<\/code><\/pre>\n\n\n\n<p>On v\u00e9rifie que tout est OK en tapant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">server-cert.pem: OK\nclient-cert.pem: OK<\/code><\/pre>\n\n\n\n<p>Maintenant on va rendre <strong>mysql<\/strong> propri\u00e9taire du r\u00e9pertoire <strong>ssl<\/strong> pour qu&rsquo;il puisse lire les fichiers :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">chown -R mysql:mysql \/etc\/mysql\/ssl\/<\/code><\/pre>\n\n\n\n<p>On \u00e9dite le fichier <strong>\/etc\/my.cnf<\/strong> et rajoute les lignes suivantes au niveau du serveur et du client :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"apacheconf\" class=\"language-apacheconf\">[client]\nssl-ca=\/etc\/mysql\/ssl\/ca-cert.pem\nssl-cert=\/etc\/mysql\/ssl\/client-cert.pem\nssl-key=\/etc\/mysql\/ssl\/client-key.pem\n\n[mysqld]\nssl-ca=\/etc\/mysql\/ssl\/ca-cert.pem\nssl-cert=\/etc\/mysql\/ssl\/server-cert.pem\nssl-key=\/etc\/mysql\/ssl\/server-key.pem<\/code><\/pre>\n\n\n\n<p>On relance le serveur et on tape :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">systemctl restart mariadb\n\nmysql -u root -p\nEnter password: <\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Welcome to the MariaDB monitor.  Commands end with ; or \\g.\nYour MariaDB connection id is 4\nServer version: 10.8.3-MariaDB Source distribution\n\nCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.\n\nType &#039;help;&#039; or &#039;\\h&#039; for help. Type &#039;\\c&#039; to clear the current input statement.\n\nMariaDB [(none)]&gt;status\n--------------\nmysql  Ver 15.1 Distrib 10.8.3-MariaDB, for Linux (x86_64) using readline 5.1\n\nConnection id:        4\nCurrent database:&nbsp;&nbsp;&nbsp;\nCurrent user:        root@localhost\nSSL:            Cipher in use is Cipher in use is TLS_AES_256_GCM_SHA384\nCurrent pager:        stdout\nUsing outfile:        &#039;&#039;\nUsing delimiter:    ;\nServer:            MariaDB\nServer version:        10.8.3-MariaDB Source distribution\nProtocol version:    10\nConnection:        Localhost via UNIX socket\nServer characterset:    latin1\nDb     characterset:    latin1\nClient characterset:    utf8mb3\nConn.  characterset:    utf8mb3\nUNIX socket:        \/var\/run\/mysqld\/mysqld.sock\nUptime:            3 min 31 sec\n\nThreads: 4  Questions: 53  Slow queries: 0  Opens: 44  Open tables: 38  Queries per second avg: 0.251\n--------------<\/code><\/pre>\n\n\n\n<pre title=\"R\u00e9sultat de la commande\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">MariaDB [(none)]&gt; SHOW VARIABLES LIKE &#039;%ssl%&#039;;\n+---------------------+--------------------------------+\n| Variable_name       | Value                          |\n+---------------------+--------------------------------+\n| have_openssl        | YES                            |\n| have_ssl            | YES                            |\n| ssl_ca              | \/etc\/mysql\/ssl\/ca-cert.pem     |\n| ssl_capath          |                                |\n| ssl_cert            | \/etc\/mysql\/ssl\/server-cert.pem |\n| ssl_cipher          |                                |\n| ssl_crl             |                                |\n| ssl_crlpath         |                                |\n| ssl_key             | \/etc\/mysql\/ssl\/server-key.pem  |\n| version_ssl_library | OpenSSL 1.1.1q  5 Jul 2022    |\n+---------------------+--------------------------------+\n10 rows in set (0.001 sec)<\/code><\/pre>\n\n\n\n<p>La connexion est s\u00e9curis\u00e9e. Pour aller plus loin vous pouvez consulter <a href=\"https:\/\/mariadb.com\/kb\/en\/securing-connections-for-client-and-server\/\">cette page<\/a> qui va vous indiquer (par exemple) comment forcer les connexions chiffr\u00e9es par utilisateur, machine, ou autre.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"433\" height=\"451\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-5.png\" alt=\"\" class=\"wp-image-1747\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-5.png 433w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-5-288x300.png 288w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><\/figure>\n\n\n\n<p>Ensuite, l&rsquo;interface de PhpMyAdmin appara\u00eet avec un acc\u00e8s sur toutes les bases de donn\u00e9es existantes et la possibilit\u00e9 de cr\u00e9er une nouvelle BDD, etc&#8230;. Il ne reste plus qu&rsquo;\u00e0 profiter de l&rsquo;outil.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"434\" src=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-1024x434.png\" alt=\"\" class=\"wp-image-1748\" srcset=\"https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-1024x434.png 1024w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-300x127.png 300w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6-768x325.png 768w, https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-6.png 1050w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Pour finir, je vous invite \u00e0 supprimer le dossier \u00ab\u00a0setup\u00a0\u00bb car il n&rsquo;a pas d&rsquo;int\u00e9r\u00eat. Au cas o\u00f9 on laissera la directive dans la config d&rsquo;Apache pour refuser l&rsquo;acc\u00e8s \u00e0 ce dossier.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">rm \/usr\/share\/phpmyadmin\/setup\/ -Rf<\/code><\/pre>\n\n\n\n<p><strong>PhpMyAdmin est en place sur votre serveur Debian !<\/strong><\/p>\n\n\n\n<p>Pour aller plus loin dans la s\u00e9curisation de PhpMyAdmin, vous pouvez regarder la documentation officielle : <a href=\"https:\/\/docs.phpmyadmin.net\/fr\/latest\/setup.html#securing-your-phpmyadmin-installation\" target=\"_blank\" rel=\"noreferrer noopener\">S\u00e9curisation PhpMyAdmin<\/a>.<\/p>\n\n\n\n<p>Si votre PhpMyAdmin est accessible publiquement, je vous recommande de le basculer en HTTPS et d&rsquo;ajouter l&rsquo;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.it-connect.fr\/proteger-une-page-web-avec-htaccess-et-htpasswd\/\" target=\"_blank\">authentification Apache \u00ab\u00a0htpasswd\u00a0\u00bb<\/a> en compl\u00e9ment pour avoir une authentification suppl\u00e9mentaire avant de pouvoir acc\u00e9der \u00e0 la page de connexion PhpMyAdmin.<\/p>\n<\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column uag-hide-tab uag-hide-mob is-layout-flow\" style=\"flex-basis:170px\">\n\n<div class=\"cleanlogin-container\">\t\t\n\n\t<form class=\"cleanlogin-form\" method=\"post\" action=\"https:\/\/www.webodesign.net\/?page_id=2385\" onsubmit=\"submit.disabled = true; return true;\">\n\t\t\t\n\t\t<fieldset>\n\n\t\t\t\t\t\t<div class=\"cleanlogin-field\">\n                <label for=\"log\">Identifiant<\/label>\n\t\t\t\t<input class=\"cleanlogin-field-username\" type=\"text\" name=\"log\" placeholder=\"Identifiant\" aria-label=\"Identifiant\">\n\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"cleanlogin-field\">\n                <label for=\"pwd\">Mot de passe<\/label>\n\t\t\t\t<input class=\"cleanlogin-field-password\" type=\"password\" id=\"pwd\" name=\"pwd\" placeholder=\"Mot de passe\" aria-label=\"Mot de passe\">\n                <i class=\"bi bi-eye-slash\" id=\"togglePassword\"><\/i>\n\t\t\t<\/div>\n\n\t\t\t\t\t\n\t\t\t<input type=\"hidden\" name=\"clean_login_wpnonce\" value=\"e994c14fba\">\n            \n\t\t\t\t\t<\/fieldset>\n\t\t\n\t\t<fieldset>\n\t\t\t<input class=\"cleanlogin-field\" type=\"submit\" value=\"Se connecter\" name=\"submit\">\n\t\t\t<input type=\"hidden\" name=\"action\" value=\"login\">\n\t\t\t\n\t\t\t<div class=\"cleanlogin-field cleanlogin-field-remember\">\n\t\t\t\t<input type=\"checkbox\" id=\"rememberme\" name=\"rememberme\" value=\"forever\">\n\t\t\t\t<label for=\"rememberme\">Se souvenir de moi\u00a0?<\/label>\n\t\t\t<\/div>\n\t\t<\/fieldset>\n\n\t\t\n\t\t<div class=\"cleanlogin-form-bottom\">\n\t\t\t\n            \n\t\t\t\t\t\t\t\t\t\n\t\t<\/div>\n\t\t\n\t<\/form>\n\n<\/div>\n\n<script>\nconst togglePassword = document.querySelector('#togglePassword');\nconst password = document.querySelector('#pwd');\n\ntogglePassword.addEventListener('click', function (e) {\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    this.classList.toggle('bi-eye');\n});\n<\/script>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>PhpMyAdmin est un logiciel gratuit qui permet de g\u00e9rer un syst\u00e8me de gestion de bases de donn\u00e9es comme MySQL ou MariaDB \u00e0 partir d&rsquo;une interface web. Il permet aux administrateurs de manipuler les bases de donn\u00e9es, les tables, les utilisateurs, les droits, etc&#8230; Sans forc\u00e9ment conna\u00eetre les requ\u00eates SQL correspondantes. \u00c0 partir de l&rsquo;interface Web, il est possible d&rsquo;ex\u00e9cuter des requ\u00eates SQL directement.<\/p>\n","protected":false},"author":3,"featured_media":1750,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"qubely_global_settings":"","qubely_interactions":"","_uag_custom_page_level_css":""},"categories":[17,18,21,16],"tags":[],"qubely_featured_image_url":{"full":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"landscape":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"portraits":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-540x320.png",540,320,true],"thumbnail":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-150x150.png",150,150,true],"medium":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-300x156.png",300,156,true],"medium_large":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-768x400.png",768,400,true],"large":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"1536x1536":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"2048x2048":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"qubely_landscape":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"qubely_portrait":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-540x320.png",540,320,true],"qubely_thumbnail":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-140x100.png",140,100,true]},"qubely_author":{"display_name":"R\u00e9mi","author_link":"https:\/\/www.webodesign.net\/?author=3"},"qubely_comment":0,"qubely_category":"<a href=\"https:\/\/www.webodesign.net\/?cat=17\" rel=\"category\">Commandes Linux<\/a> <a href=\"https:\/\/www.webodesign.net\/?cat=18\" rel=\"category\">Formations<\/a> <a href=\"https:\/\/www.webodesign.net\/?cat=21\" rel=\"category\">Formations Linux<\/a> <a href=\"https:\/\/www.webodesign.net\/?cat=16\" rel=\"category\">Tutoriels Linux-Debian<\/a>","qubely_excerpt":"PhpMyAdmin est un logiciel gratuit qui permet de g\u00e9rer un syst\u00e8me de gestion de bases de donn\u00e9es comme MySQL ou MariaDB \u00e0 partir d'une interface web. Il permet aux administrateurs de manipuler les bases de donn\u00e9es, les tables, les utilisateurs, les droits, etc... Sans forc\u00e9ment conna\u00eetre les requ\u00eates SQL correspondantes. \u00c0 partir de l'interface Web,\u2026","uagb_featured_image_src":{"full":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"thumbnail":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-150x150.png",150,150,true],"medium":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-300x156.png",300,156,true],"medium_large":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-768x400.png",768,400,true],"large":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"1536x1536":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"2048x2048":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"qubely_landscape":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0.png",940,490,false],"qubely_portrait":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-540x320.png",540,320,true],"qubely_thumbnail":["https:\/\/www.webodesign.net\/wp-content\/uploads\/2022\/12\/installation-phpmyadmin-debian-11-0-140x100.png",140,100,true]},"uagb_author_info":{"display_name":"R\u00e9mi","author_link":"https:\/\/www.webodesign.net\/?author=3"},"uagb_comment_info":0,"uagb_excerpt":"PhpMyAdmin est un logiciel gratuit qui permet de g\u00e9rer un syst\u00e8me de gestion de bases de donn\u00e9es comme MySQL ou MariaDB \u00e0 partir d'une interface web. Il permet aux administrateurs de manipuler les bases de donn\u00e9es, les tables, les utilisateurs, les droits, etc... Sans forc\u00e9ment conna\u00eetre les requ\u00eates SQL correspondantes. \u00c0 partir de l'interface Web,\u2026","_links":{"self":[{"href":"https:\/\/www.webodesign.net\/index.php?rest_route=\/wp\/v2\/posts\/1741"}],"collection":[{"href":"https:\/\/www.webodesign.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webodesign.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webodesign.net\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webodesign.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1741"}],"version-history":[{"count":25,"href":"https:\/\/www.webodesign.net\/index.php?rest_route=\/wp\/v2\/posts\/1741\/revisions"}],"predecessor-version":[{"id":1915,"href":"https:\/\/www.webodesign.net\/index.php?rest_route=\/wp\/v2\/posts\/1741\/revisions\/1915"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webodesign.net\/index.php?rest_route=\/wp\/v2\/media\/1750"}],"wp:attachment":[{"href":"https:\/\/www.webodesign.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webodesign.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webodesign.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}