PhpMyAdmin - Installation manuelle sur Debian
L'installation de phpMyAdmin sur Debian est parfois... compliquée avec apt. Voir impossible ! Voici donc comment faire pour disposer de ce service de gestion de bases de données sur Debian, avec Apache2.
Source : https://aymeric-cucherousset.fr/installer-phpmyadmin-sur-debian-11/
Téléchargement de la dernière version de phpMyadmin
DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz
tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz
Déplacement des fichiers dans leur destination
mkdir /usr/share/phpmyadmin
mv phpMyAdmin-*/* /usr/share/phpmyadmin
Dossier pour les fichiers temporaires
Après avoir réalisé cette étape nous devons créer un répertoire pour les fichiers temporaires de PhpMyAdmin et attribuer l’utilisateur d’apache comme propriétaire de l’emplacement de PhpMyAdmin.
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin
Fichier de configuration de phpMyAdmin
Il est nécessaire de générer une phrase secrète dont nous aurons besoin dans le fichier de configuration de phpMyAdmin
php -r 'echo substr(bin2hex(random_bytes(16)), 0, 32);'
Copier ensuite le template de fichier de configuration de PhpMyAdmin afin de l’utiliser.
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Editer ce fichier de configuration afin de spécifier le secret précédemment généré et indiquer le répertoire des fichiers temporaires.
nano /usr/share/phpmyadmin/config.inc.php
# Ajouter la ligne suivante dans le fichier de configuration en adaptant avec le secret généré
$cfg['blowfish_secret'] = '32_caracteres_passphrase';
# Spécifier le répertoire des fichiers temporaires
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Virtualhost pour Apache
Créer le fichier phpmyadmin.conf
dans le répertoire /etc/apache2/sites-available
pour indiquer à Apache comment se comporter avec l'application phpMyAdmin.
Création du fichier avec nano /etc/apache2/sites-available/phpmyadmin.conf
, puis insérer le code suivant :
| 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-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>
|
Activer le nouveau site avec la commande a2ensite phpmyadmin
Redémarrer le service apache avec la commande systemctl restart apache2.service