installer phpMyAdmin manuellement
Posté : 27 juil. 2024, 19:46
Sur le tutoriel d'installation de serveur Web je vous ai montré comment installer phpMyAdmin via les paquets Debian. Pratique mais vous dépendez des mises à jour des paquets qui parfois peuvent être assez longues. Or en l’installant manuellement vous ne dépendez pas des paquets et gérez vous-même vos mises à jour sauf que c'est à vous de surveiller les mises à jour et les faire.
Je pars du principe que vous avez suivi mon tutoriel sur l’installation d’un serveur web et que vous en êtes à l’installation de phpMyAdmin.
Installation
Connectez vous en root ou en user ayant les droits nécessaire pour effectuer les actions sur votre serveur dédié.
Vous allez télécharger la dernière version de phpMyAdmin sur le site officiel ici
Lors de la rédaction de ce tutoriel la dernière version est phpMyAdmin 5.2.1 et vous prenez la version .tar.gz.
Pour obtenir le lien de téléchargement vous allez sur le lien puis clic droit et copier le lien et sur votre dédié vous allez dans
vous pourriez prendre un autre dossier mais j’utilise régulièrement celui-ci pour faire cela. Puis tapezcd /opt
Vous pouvez faire un ls pour afficher le contenu de votre dossier et vous verrez notamment l’archive phpMyAdmin-5.2.1-all-languages.tar.gz
On décompresse l’archive avec la commande
On déplace le dossier et on le renomme en phpmyadmintar xvf phpMyAdmin-5.2.1-all-languages.tar.gz
on supprime l’archive téléchargé, vous n’en aurez plus besoin.mv phpMyAdmin-5.2.1-all-languages/ /usr/share/phpmyadmin
Voyons maintenant la configurationrm phpMyAdmin-5.2.1-all-languages.tar.gz
Configuration
On va créer un dossier temporaire utile à phpMyAdmin
et on met les droits sur le user www-data, c’est lui qui gère ce qui touche au web.mkdir -p /var/lib/phpmyadmin/tmp
Lors de l’installation un fichier de configuration est fourni. Nous allons le copier et le renommer car c’est un fichier exemple.chown -R www-data:www-data /var/lib/phpmyadmin
Fichier config.sample.inc.php renommé en config.inc.php et c’est sous ce nom qu’il est fonctionnel.cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
On édite le fichier
trouvez la ligne suivante et modifiez la de façon à mettre un mot de passe de 32 caractères et rentrez le bien entre les ''nano /usr/share/phpmyadmin/config.inc.php
ensuite plus bas$cfg['blowfish_secret'] = 'vous devez mettre ici 32 caractères et tout attaché et ne mettez pas d’accent etc'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
vous dé-commentez les lignes de façon à faire ceci/* 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';
remplacez la partie rouge par un mot de passe de votre choix puis tout en bas après la dernière ligne, sur une nouvelle ligne, vous ajoutez ceci/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'mettez un mot de passe';
/* 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'
Vous refermez votre fichier en sauvegardant vos modifications.$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
On crée les tables et les bases de données en tapant
On ouvre mysql en tapant mysqlmysql < /usr/share/phpmyadmin/sql/create_tables.sql
remplacez "votremotdepasse" par celui que vous avez mis plus haut sur la ligneGRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'votremotdepasse';
Profitez que mysql est ouvert pour créer votre utilisateur root, celui qui aura tous les droits. Tapez$cfg['Servers'][$i]['controlpass'] = 'mettez un mot de passe';
Remplacez lewebalolo et motdepasse par ce que vous voulez puis validez.GRANT ALL PRIVILEGES ON *.* TO 'lewebalolo'@'localhost' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION;
Pour sortir tapez exit ou quit.
Maintenant on va configurer apache2. On créé le fichier de configuration
et vous mettez ceci dedansnano /etc/apache2/conf-available/phpmyadmin.conf
Code : Tout sélectionner
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
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/
php_admin_value mbstring.func_overload 0
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
et remplacer phpmyadmin par ce que vous voulez et ce sera la terminaison de votre lien pour accéder à phpMyAdmin. Si vous mettez par exemple adminsql votre lien sera votre-site.com/adminsqlAlias /phpmyadmin /usr/share/phpmyadmin
Fermez ensuite votre fichier en sauvegardant.
On active la configuration
et on relance apache2a2enconf phpmyadmin.conf
Votre phpMyAdmin est maintenant installé et fonctionnel. Si vous avez installé un certificat SSL votre phpMyAdmin est accessible via votre lien https://votre-site.com/adminsqlservice apache2 restart
Mettre à jour phpMyAdmin
Pour mettre à jour c’est très simple, il vous suffit de télécharger la dernière version sur le site officiel et d’écraser l’ancienne qui est dans
en faisant bien attention à ne pas supprimer le fichier config.inc.php/usr/share/phpmyadmin/
Restreindre l'accès
Vous pouvez pousser la sécurité encore un peu plus loin en autorisant que votre IP à se connecter à phpMyAdmin. Pour se faire vous éditer le fichier (si vous avez installé manuellement)
si vous avez installé phpMyAdmin via les paquets Debian ce sera dans le fichiernano /etc/apache2/conf-available/phpmyadmin.conf
puis trouvez la partienano /etc/phpmyadmin/apache.conf
Code : Tout sélectionner
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
Code : Tout sélectionner
# CONNEXION PHPMYADMIN AUTORISE AVEC CETTE IP
Order deny,allow
Deny from all
Allow from 100.100.100.100
Code : Tout sélectionner
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
# Autorisation de connexion a phpmyadmin via IP
Order deny,allow
Deny from all
Allow from 100.100.100.100
Refermez le fichier en sauvegardant puis relancez apache2
et voilà.service apache2 restart