Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
logiciel:reseau:bdd:phpmyadmin:start [2024/09/21 10:51] – supprimée - modification externe (Unknown date) 127.0.0.1logiciel:reseau:bdd:phpmyadmin:start [2024/09/21 10:51] (Version actuelle) – ↷ Page déplacée de logiciel:reseau:serveur:bdd:phpmyadmin:start à logiciel:reseau:bdd:phpmyadmin:start admin
Ligne 1: Ligne 1:
 +{{tag>Logiciel}}
  
 +====== phpMyAdmin : une interface web pour gérer les BDD SQL ======
 +
 +**phpMyAdmin** est une interface web en PHP pour administrer à distance les SGBD MySQL et MariaDB.
 +
 +Il permet d'administrer :
 +  * les bases de données
 +  * les tables et leurs champs (ajout, suppression, définition du type)
 +  * les index, les clés primaires et étrangères
 +  * les utilisateurs de la base et leurs permissions
 +  * importer ou exporter les données dans divers formats (CSV, XML, PDF, OpenDocument, Word, Excel et LaTeX)
 +
 +===== Pré-requis =====
 +
 +Avoir installé :
 +  * un SGBD (MySQL ou MariaDB)
 +  * un serveur web (apache2, lighttpd, nginx) fonctionnel
 +  * vérifier que les scripts PHP sont correctement interprétés.
 +
 +===== Installation =====
 +
 +Installez [[apt>phpmyadmin]]<cli prompt='$ '>USER@MACHINE:~$ sudo apt install {phpmyadmin,}</cli>
 +
 +Lors de l'installation, il vous sera posé quelques questions auxquelles il faut répondre avec soin :
 +<subnumberlist>
 +  - **Cochez** Créer la base de données phpmyadmin :{{ :logiciel:reseau:serveur:bdd:phpmyadmin:phpmyadmin_001.png?400 |}}
 +  - **Décochez** les deux options de //Serveur web à reconfigurer automatiquement// :{{ :logiciel:reseau:serveur:bdd:phpmyadmin:phpmyadmin_002.png?400 |}}
 +</subnumberlist>
 +
 +La configuration préliminaire est terminée.
 +
 +==== Autre méthode ====
 +
 +<subnumberlist>
 +  - Choisissez l’archive appropriée sur la page de téléchargement de [[https://www.phpmyadmin.net/]] :{{ :logiciel:reseau:serveur:bdd:phpmyadmin:phpmyadmin_003.png?400 |}}Nous supposerons que vous avez choisi une archive dont le nom est de la forme phpMyAdmin-x.x.x-all-languages.tar.gz :{{ :logiciel:reseau:serveur:bdd:phpmyadmin:phpmyadmin_004.png?400 |}}
 +  - Décompressez l'archive et transférez le répertoire sur votre serveur web via FTP.
 +</subnumberlist>
 +===== Configuration =====
 +
 +++++ Fichier de configuration de phpmyadmin |
 +<code php /etc/phpmyadmin/config.inc.php>
 +<?php
 +/**
 + * Debian local configuration file
 + *
 + * This file overrides the settings made by phpMyAdmin interactive setup
 + * utility.
 + *
 + * For example configuration see
 +   /usr/share/doc/phpmyadmin/examples/config.sample.inc.php
 + * or
 +   /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php
 + *
 + * NOTE: do not add security sensitive data to this file (like passwords)
 + * unless you really know what you're doing. If you do, any user that can
 + * run PHP or CGI on your webserver will be able to read them. If you still
 + * want to do this, make sure to properly secure the access to this file
 + * (also on the filesystem level).
 + */
 +
 +if (!function_exists('check_file_access')) {
 +    function check_file_access($path)
 +    {
 +        if (is_readable($path)) {
 +            return true;
 +        } else {
 +            error_log(
 +                'phpmyadmin: Failed to load ' . $path
 +                . ' Check group www-data has read access and open_basedir restrictions.'
 +            );
 +            return false;
 +        }
 +    }
 +}
 +
 +// Load secret generated on postinst
 +if (check_file_access('/var/lib/phpmyadmin/blowfish_secret.inc.php')) {
 +    require('/var/lib/phpmyadmin/blowfish_secret.inc.php');
 +}
 +
 +// Load autoconf local config
 +if (check_file_access('/var/lib/phpmyadmin/config.inc.php')) {
 +    require('/var/lib/phpmyadmin/config.inc.php');
 +}
 +
 +/**
 + * Server(s) configuration
 + */
 +$i = 0;
 +// The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use $cfg['Servers'][0].
 +// You can disable a server config entry by setting host to ''.
 +$i++;
 +
 +/**
 + * Read configuration from dbconfig-common
 + * You can regenerate it using: dpkg-reconfigure -plow phpmyadmin
 + */
 +if (check_file_access('/etc/phpmyadmin/config-db.php')) {
 +    require('/etc/phpmyadmin/config-db.php');
 +}
 +
 +/* Configure according to dbconfig-common if enabled */
 +if (!empty($dbname)) {
 +    /* Authentication type */
 +    $cfg['Servers'][$i]['auth_type'] = 'cookie';
 +    /* Server parameters */
 +    if (empty($dbserver)) $dbserver = 'localhost';
 +    $cfg['Servers'][$i]['host'] = $dbserver;
 +
 +    if (!empty($dbport) || $dbserver != 'localhost') {
 +        $cfg['Servers'][$i]['connect_type'] = 'tcp';
 +        $cfg['Servers'][$i]['port'] = $dbport;
 +    }
 +    //$cfg['Servers'][$i]['compress'] = false;
 +    /* Select mysqli if your server has it */
 +    $cfg['Servers'][$i]['extension'] = 'mysqli';
 +    /* Optional: User for advanced features */
 +    $cfg['Servers'][$i]['controluser'] = $dbuser;
 +    $cfg['Servers'][$i]['controlpass'] = $dbpass;
 +    /* Optional: Advanced phpMyAdmin features */
 +    $cfg['Servers'][$i]['pmadb'] = $dbname;
 +    $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';
 +
 +    /* Uncomment the following to enable logging in to passwordless accounts,
 +     * after taking note of the associated security risks. */
 +    // $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
 +
 +    /* Advance to next server for rest of config */
 +    $i++;
 +}
 +
 +/* Authentication type */
 +//$cfg['Servers'][$i]['auth_type'] = 'cookie';
 +/* Server parameters */
 +//$cfg['Servers'][$i]['host'] = 'localhost';
 +//$cfg['Servers'][$i]['connect_type'] = 'tcp';
 +//$cfg['Servers'][$i]['compress'] = false;
 +/* Uncomment the following to enable logging in to passwordless accounts,
 + * after taking note of the associated security risks. */
 +// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
 +
 +/**
 + * phpMyAdmin configuration storage settings.
 + */
 +
 +/* User used to manipulate with storage */
 +// $cfg['Servers'][$i]['controlhost'] = '';
 +// $cfg['Servers'][$i]['controlport'] = '';
 +// $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';
 +/* Contrib / Swekey authentication */
 +// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
 +
 +/*
 + * End of servers configuration
 + */
 +
 +/*
 + * Directories for saving/loading files from server
 + */
 +$cfg['UploadDir'] = '';
 +$cfg['SaveDir'] = '';
 +
 +/* Support additional configurations */
 +foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename)
 +{
 +    include($filename);
 +}</code>
 +++++
 +
 +<WRAP center round tip 60%>
 +  * Pour activer la connexion à des comptes sans mot de passe, dé-commentez la ligne :
 +
 +<code - >    /* Uncomment the following to enable logging in to passwordless accounts,
 +     * after taking note of the associated security risks. */
 +    $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;</code>
 +</WRAP>
 +
 +Il faut faire comprendre à nginx qu’une nouvelle application est maintenant accessible via le serveur nginx.
 +
 +Éditez avec les droits d'administration le fichier **/etc/nginx/sites-available/phpmyadmin** pour y écrire ceci :<code - /etc/nginx/sites-available/phpmyadmin>
 +server {
 +    listen          81;
 +    server_name     localhost;
 +    root        /usr/share/phpmyadmin;
 +    index       index.php index.html index.htm;
 +    if (!-e $request_filename) {
 +        rewrite ^/(.+)$ /index.php?url=$1 last;
 +        break;
 +    }
 +
 +    location ~ .php$ {
 +        try_files $uri =404;
 +        fastcgi_pass unix:/var/run/php5-fpm.sock;
 +        fastcgi_index index.php;
 +        include /etc/nginx/fastcgi_params;
 +    }
 +}
 +</code>
 +
 +<WRAP center round info 60%>
 +Quelques explications :
 +<subnumberlist>
 +  - **server {...}** : bloc << server { ... } >> (On déclare un nouveau vhost à nginx)
 +  - **listen 81** : L’application web va écouter sur le port non-standard 81 (et non pas 80 comme toutes les applications web traditionnelles). Ce port peut être quelconque, tout en faisant attention que certains ports sont déjà occupés par d’autres services / rôles… ; Cela cloisonne l’application web << site >> de l’application << gestion >>. Attention, vous devrez sans doute modifier les règles de votre pare-feu / routeur selon votre architecture.
 +  - **server_name localhost** : Nom du serveur web. Vous pouvez mettre le nom que vous voulez
 +  - **root /usr ...** : L’attribut << root >> déclare au serveur web où se trouve l’application dans votre serveur. Pour PHPMyAdmin, les fichiers se situent dans  **/usr/share/phpmyadmin** ;
 +  - **index ...** : Tous les fichiers déclarés dans cet attributs seront susceptibles de devenir la page d’accueil de votre application, seulement si ces fichiers sont présents dans le dossier de l’application ;
 +  - **Partie << if >>** : réécriture des liens selon les fichiers / pages demandés ;
 +  - **Partie << Location >>** : Pour plus d’informations sur cette partie, voir [[logiciel:internet:nginx:start]]
 +</subnumberlist>
 +</WRAP>
 +
 +Ajouter un lien symbolique dans le dossier /etc/nginx/sites-enabled :<cli prompt='$ '>USER@MACHINE:~$ sudo ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/phpmyadmin</cli>
 +
 +Redémarrez nginx pour inclure cette nouvelle configuration :<cli prompt='$ '>USER@MACHINE:~$ sudo nginx -s reload</cli>
 +===== Utilisation =====
 +
 +Dans votre navigateur web, ouvrez l’adresse de votre serveur web, suivi du port saisi dans le fichier de configuration (dans notre exemple, 81) : [[http://ip_serveur:81]]
 +
 +===== Désinstallation =====
 +
 +===== Problèmes connus =====
 +
 +===== Voir aussi =====
 +
 +  * **(fr)** [[https://docs.phpmyadmin.net/fr/latest/|Documentation officielle de phpMyAdmin]]
 +
 +----
 +//Basé sur << [[https://docs.phpmyadmin.net/fr/latest/|Documentation officielle de phpMyAdmin]] >> par phpmyadmin.net.//
Navigation
  • Pages :
    • créer :
QR Code
QR Code phpMyAdmin : une interface web pour gérer les BDD SQL (generated for current page)