phpMyAdmin (Français)
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.
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
/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.
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 :
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.