Installation

De Wiki de Jordan LE NUFF
Sauter à la navigation Sauter à la recherche

Présentation

Cette page a pour objet de décrire l'installation du produit phpMyAdmin.

Le produit téléchargeable depuis le site officiel : https://www.phpmyadmin.net/. A ce jour, la version disponible est la 4.8.5 (https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip).

La documentation est accessible à https://docs.phpmyadmin.net/fr/latest/.

Prérequis

Serveur web

Pas de prérequis particulier. Le Apache 2.4.39 installé sur le serveur web sera donc suffisant.

PHP

Version

Version 7.1.3 minimum requise.

Extensions

Les extensions nécessaires sont les suivantes :

  • session
  • SPL
  • hash
  • ctype
  • JSON
  • mbstring
    • Optionnelle, mais fortement recommandée pour des raisons de performances
  • zip
    • pour télécharger des fichiers ZIP vers le serveur
  • gd
  • openssl
    • Optionnelle, mais fortement recommandée pour utiliser la méthode d’authentification par « cookie » (par défaut)
  • curl

Pour vérifier la présence de ces extensions, lancer la commande suivante :

php -m|grep -iE "session|spl|hash|ctype|json|gd|curl"

Sur le serveur web, cela donne le résultat suivant :

ctype
curl
gd
hash
json
session
SPL

Les extension nécessaires sont donc bien présentes sur le serveur web.

Base de données

phpMyAdmin ne prend en charge que les bases de données compatibles MySQL :

  • MySQL 5.5 ou supérieur
  • MariaDB 5.5 ou supérieur

En l'occurrence, sur le serveur de base de données, le prérequis de la base de données est rempli :

mysql --version
mysql  Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using  EditLine wrapper

Téléchargement et déploiement des sources

Téléchargement

Se connecter en SSH au serveur web lancer la commande suivante :

wget -O downloads/phpMyAdmin-4.8.5.zip https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip

Déploiement des sources

Définir temporairement un umask à 0002 :

umask 0002

Créer un dossier phpMyAdmin :

mkdir -p /chemin/vers/phpMyAdmin

Dézipper le fichier des sources phpMyAdmin vers son dossier d'installation nouvellement créé :

unzip -d /chemin/vers/phpMyAdmin/ downloads/phpMyAdmin-4.8.5.zip

Créer un lien symbolique current pointant vers le dossier des sources dézippé :

ln -s /chemin/vers/phpMyAdmin/phpMyAdmin-4.8.5-all-languages /chemin/vers/phpMyAdmin/current

Redéfinir le umask par défaut :

. /etc/profile

Paramètres supplémentaires

Fichiers

Donner les droits d'accès à l'utilisateur Apache (www) au dossier applicatif de phpMyAdmin :

chown -R www:www /chemin/vers/phpMyAdmin

MySQL

Une base de données dédiée à phpMyAdmin doit être créée et un utilisateur dédié doit lui être associé. Cela permet d'activer des fonctionnalités supplémentaires de phpMyAdmin (Signets, commentaires, historique SQL, mécanisme de suivi, génération de PDF, Transformations, Relations , etc.).

Pour créer la base de données, se connecter en tant que root :

mysql -uroot -p

Créer une base de données nommée pma_db :

CREATE DATABASE pma_db;

Créer un utilisateur nommé pma_user et lui donner les droits d'accès à cette base :

CREATE USER 'pma_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxxxxxxxx';
GRANT ALL PRIVILEGES ON pma_db.* TO 'pma_user'@'localhost' WITH GRANT OPTION;

Apache

Ajouter la section suivante dans le fichier /local/www/current/conf/sites/myserver.conf :

# Configuration phpMyAdmin
Alias /pma /data/www/phpMyAdmin/current
<Directory "/data/www/phpMyAdmin/current">
	Options FollowSymLinks
	DirectoryIndex index.php
	AllowOverride All
	Require all granted
	<FilesMatch \.php$>
		SetHandler "proxy:unix:/local/php/sockets/php7_phpmyadmin.sock|fcgi://localhost/"
	</FilesMatch>
</Directory>
# Fin de configuration iTop

Recharger Apache pour prise en compte :

httpd -k graceful

PHP

Créer un fichier /local/php/php7/etc/php-fpm.d/phpmyadmin.conf dont le contenu sera le suivant :

[phpmyadmin]
user = php-fpm
group = php-fpm

; Socket Unix dédié à phpMyAdmin
listen = /local/php/sockets/php7_$pool.sock

; Donner à Apache (www) les droits d'accès au socket
listen.owner = www
listen.group = www

; Définition du chemin d'accès des logs
access.log = /data/logs/$pool/$pool_php7.access.log
slowlog = /data/logs/$pool/$pool_php7.log.slow
php_admin_value[error_log] = /data/logs/$pool/$pool_php7.log
php_admin_flag[log_errors] = on
; https://www.php.net/manual/fr/errorfunc.constants.php
php_admin_value[error_reporting] = E_NOTICE

; Tuning du pool php-fpm
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /status
ping.path = /ping

Recharger php7-fpm pour prise en compte :

systemctl reload php7-fpm.service

Installation