phpMyAdmin (Français)

État de la traduction:
Cet article est la version francophone de
PhpMyAdmin
. Date de la dernière traduction: 2024-01-16. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
phpMyAdmin
est une application Web de gestion pour les systèmes de gestion de base de données MySQL et MariaDB, réalisée principalement en PHP et distribuée sous licence GNU GPL.
Installation
Installez
le paquet
phpmyadmin
.
Exécution
PHP
Assurez-vous que les extensions PHP
mariadb
et
iconv
ont été activées.
En option, vous pouvez activer
extension=bz2
et
extension=zip
pour la prise en charge de la compression.
Note
Si
open_basedir
a été défini, assurez-vous d'inclure
/usr/share/webapps
et
/etc/webapps
à
open_basedir
dans
/etc/php/php.ini
. Consultez
PHP#Configuration
.
Apache
Configurez Apache pour utiliser PHP comme indiqué dans l'article
Apache HTTP Server (Français)#PHP
.
Créez le fichier de configuration d'Apache :
/etc/httpd/conf/extra/phpmyadmin.conf
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
    DirectoryIndex index.php
    AllowOverride All
    Options FollowSymlinks
    Require all granted
</Directory>
Et l'inclure dans
/etc/httpd/conf/httpd.conf
:
# Configuration de phpMyAdmin
Include conf/extra/phpmyadmin.conf
Note
Par défaut, toute personne pouvant accéder au serveur Web Apache peut consulter la page de connexion de phpMyAdmin sous cette URL. Pour changer cela, modifiez
/etc/httpd/conf/extra/phpmyadmin.conf
à votre convenance. Par exemple, si vous ne voulez pouvoir y accéder que depuis la même machine, remplacez
Require all granted
par
Require local
. Attention, cela empêchera la connexion à PhpMyAdmin sur un serveur distant. Si vous souhaitez toujours accéder à PhpMyAdmin sur un serveur distant de manière sécurisée, vous pouvez envisager de mettre en place un
OpenSSH (Français)#Tunnel SOCKS chiffré
.
Après avoir apporté des modifications au fichier de configuration d'Apache,
redémarrez
httpd.service
.
Lighttpd
Pour configurer
Lighttpd
, assurez-vous qu'il est capable de servir des fichiers PHP et que
mod_alias
a été activé.
Ajoutez l'alias suivant pour PhpMyAdmin à la configuration :
alias.url = ("/phpmyadmin" => "/usr/share/webapps/phpMyAdmin/")
Nginx
Assurez-vous de configurer
nginx#FastCGI
et d'utiliser
nginx#Server blocks
pour faciliter la gestion.
De préférence, accédez à phpMyAdmin par sous-domaine, par exemple
https://
pma.domain.tld
:
/etc/nginx/sites-available/
pma.domain.tld
server {
    server_name
pma.domain.tld
;
    ; listen 80; # also listen on http
    ; listen [::]:80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    index index.php;
    access_log /var/log/nginx/pma.access.log;
    error_log /var/log/nginx/pma.error.log;

    # Allows limiting access to certain client addresses.
    ; allow 192.168.1.0/24;
    ; allow
my-ip
;
    ; deny all;

    root /usr/share/webapps/phpMyAdmin;
    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /index.php;

    location ~ \.php$ {
        try_files $uri $document_root$fastcgi_script_name =404;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

        fastcgi_param HTTP_PROXY "";
        fastcgi_param HTTPS on;
        fastcgi_request_buffering off;
   }
}
Ou par sous-répertoire, par exemple
https://
domain.tld
/phpMyAdmin
:
/etc/nginx/sites-available/
domain.tld
server {
    server_name
domain.tld
;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    index index.php;
    access_log /var/log/nginx/domain.tld.access.log;
    error_log /var/log/nginx/domain.tld.error.log;

    root /srv/http/domain.tld;
    location / {
        try_files $uri $uri/ =404;
    }

    location /phpMyAdmin {
        root /usr/share/webapps/phpMyAdmin;
    }

    # Deny static files
    location ~ ^/phpMyAdmin/(README|LICENSE|ChangeLog|DCO)$ {
       deny all;
    }

    # Deny .md files
    location ~ ^/phpMyAdmin/(.+\.md)$ {
      deny all;
   }

   # Deny setup directories
   location ~ ^/phpMyAdmin/(doc|sql|setup)/ {
      deny all;
   }

   #FastCGI config for phpMyAdmin
   location ~ /phpMyAdmin/(.+\.php)$ {
      try_files $uri $document_root$fastcgi_script_name =404;

      fastcgi_split_path_info ^(.+\.php)(/.*)$;
      fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;

      fastcgi_param HTTP_PROXY "";
      fastcgi_param HTTPS on;
      fastcgi_request_buffering off;
   }
}
Configuration
Le fichier de configuration principal se trouve à
/usr/share/webapps/phpMyAdmin/config.inc.php
.
Définir un serveur MySQL distant
Si le serveur
MySQL
est un hôte distant, ajoutez la ligne suivante au fichier de configuration :
$cfg['Servers'][$i]['host'] = 'example.com' ;
Utiliser le script d'installation
Pour permettre l'utilisation du script d'installation de phpMyAdmin (par exemple,
http://localhost/phpmyadmin/setup
), assurez-vous que
/usr/share/webapps/phpMyAdmin
est accessible en écriture pour l'
utilisateur
http
:
# mkdir /usr/share/webapps/phpMyAdmin/config
# chown http:http /usr/share/webapps/phpMyAdmin/config
# chmod 750 /usr/share/webapps/phpMyAdmin/config
Ajouter la phrase de passe blowfish_secret
Il est nécessaire de saisir une chaîne unique de 32 caractères pour utiliser pleinement l'algorithme blowfish utilisé par phpMyAdmin, ce qui permet d'éviter le message
ERROR : The configuration file now needs a secret passphrase (blowfish_secret)
:
/usr/share/webapps/phpMyAdmin/config.inc.php
$cfg['blowfish_secret'] = '...' ;
Activer le stockage de la configuration
Les options supplémentaires telles que les liens vers les tables, le suivi des modifications, la création de PDF et les requêtes de mise en signet sont désactivées par défaut, affichant
Le stockage de la configuration de phpMyAdmin n'est pas complètement configuré, certaines fonctionnalités étendues ont été désactivées.
sur la page d'accueil.
Note
Cet exemple suppose que vous souhaitez utiliser le nom d'utilisateur par défaut
pma
comme
controluser
, et
pmapass
comme
controlpass
.
Dans
/usr/share/webapps/phpMyAdmin/config.inc.php
, décomposez (enlevez les "//"s" au début), et modifiez-les en fonction de vos informations d'identification si nécessaire :
/usr/share/webapps/phpMyAdmin/config.inc.php
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = 'my-host';
// $cfg['Servers'][$i]['controlport'] = '3306';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* 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';
Configurer la base de données
Deux options sont disponibles pour créer les tables requises :
Importer
/usr/share/webapps/phpMyAdmin/sql/create_tables.sql
en utilisant PhpMyAdmin.
Exécuter
mysql -u root -p < /usr/share/webapps/phpMyAdmin/sql/create_tables.sql
dans la ligne de commande.
Configurer l'utilisateur de la base de données
Pour appliquer les permissions requises pour
controluser
, exécutez la requête suivante :
Note
Veillez à remplacer toutes les instances de
pma
et
pmapass
par les valeurs définies dans
config.inc.php
. Si vous configurez ce système pour une base de données distante, vous devez également remplacer
localhost
par l'hôte approprié
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'pma'@'localhost';
Afin d'utiliser les fonctionnalités de signet et de relation, définissez les permissions suivantes :
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' ;
Connectez-vous à nouveau pour vous assurer que les nouvelles fonctionnalités sont activées.
Activer la mise en cache des modèles
Modifiez
/usr/share/webapps/phpMyAdmin/config.inc.php
pour ajouter la ligne :
$cfg['TempDir'] = '/tmp/phpmyadmin' ;
Supprimer le répertoire de configuration
Supprimez le répertoire de configuration temporaire une fois la configuration terminée. Cela supprimera également l'alerte de l'interface web :
# rm -r /usr/share/webapps/phpMyAdmin/config
Installer des thèmes
Les thèmes se trouvent dans
/usr/share/webapps/phpMyAdmin/themes
. Vous pouvez trouver de nouveaux thèmes sur
https://www.phpmyadmin.net/themes/
.
Vous pouvez simplement télécharger et extraire le nouveau thème et il fonctionnera après le rafraîchissement de phpmyadmin. Cependant, vous devez télécharger le thème pour la bonne version de phpmyadmin, les thèmes pour les anciennes versions ne fonctionneront pas.
Voir aussi
Documentation officielle
Wiki phpMyAdmin