Jump to content
From ArchWiki

État de la traduction: Cet article est la version francophone de PhpMyAdmin. Date de la dernière traduction: 2022-10-03. 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

Category:

- Web admin interfaces (Français)