Installer phpMyAdmin pour Pterodactyl
Gérez facilement vos bases de données MySQL avec phpMyAdmin directement depuis votre serveur Pterodactyl.
📋 Avant de commencer
✅ Un serveur avec Pterodactyl Panel installé ✅ MySQL/MariaDB configuré et fonctionnel ✅ Nginx ou Apache installé ✅ Accès root ou sudo au serveur ✅ Un nom de domaine ou sous-domaine (recommandé)
Installer phpMyAdmin
Sur Ubuntu / Debian
# Mettre à jour les paquets
sudo apt update
# Installer phpMyAdmin
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl -y
💡 Astuce : Lors de l'installation, sélectionnez "apache2" avec la barre d'espace même si vous utilisez Nginx (nous configurerons Nginx manuellement).
Pendant l'installation :
- Sélectionnez le serveur web : apache2 (appuyez sur espace puis Entrée)
- Configurer la base de données : Oui
- Définissez un mot de passe pour phpMyAdmin
Sur CentOS / Rocky Linux
# Installer le dépôt EPEL
sudo yum install epel-release -y
# Installer phpMyAdmin
sudo yum install phpmyadmin -y
Configurer phpMyAdmin
Activer les extensions PHP nécessaires
# Activer mbstring
sudo phpenmod mbstring
# Redémarrer PHP-FPM
sudo systemctl restart php8.1-fpm
💡 Note : Remplacez php8.1-fpm par votre version de PHP (php7.4-fpm, php8.2-fpm, etc.).
Créer un lien symbolique
# Créer un lien vers le répertoire web de Pterodactyl
sudo ln -s /usr/share/phpmyadmin /var/www/pterodactyl/public/phpmyadmin
# Créer un dossier dédié
sudo mkdir -p /var/www/phpmyadmin
sudo cp -r /usr/share/phpmyadmin/* /var/www/phpmyadmin/
sudo chown -R www-data:www-data /var/www/phpmyadmin
Configurer Nginx
Créez une configuration Nginx pour phpMyAdmin.
sudo nano /etc/nginx/sites-available/phpmyadmin
server {
listen 80;
server_name phpmyadmin.votredomaine.com;
root /var/www/phpmyadmin;
index index.php index.html;
# Logs
access_log /var/log/nginx/phpmyadmin-access.log;
error_log /var/log/nginx/phpmyadmin-error.log;
# Sécurité - Bloquer l'accès aux fichiers sensibles
location ~ ^/(libraries|setup/frames|setup/libs) {
deny all;
return 404;
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Bloquer l'accès aux fichiers cachés
location ~ /\. {
deny all;
}
}
⚠️ Important
Remplacez phpmyadmin.votredomaine.com par votre propre domaine et php8.1-fpm.sock par votre version de PHP.
# Créer le lien symbolique
sudo ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/
# Tester la configuration Nginx
sudo nginx -t
# Redémarrer Nginx
sudo systemctl restart nginx
Sécuriser phpMyAdmin avec SSL
Utilisez Certbot pour obtenir un certificat SSL gratuit.
# Installer Certbot
sudo apt install certbot python3-certbot-nginx -y
# Obtenir un certificat SSL
sudo certbot --nginx -d phpmyadmin.votredomaine.com
✅ Certbot configurera automatiquement Nginx pour utiliser HTTPS et rediriger HTTP vers HTTPS.
Créer un utilisateur MySQL dédié
Pour plus de sécurité, créez un utilisateur MySQL spécifique pour phpMyAdmin.
# Se connecter à MySQL
sudo mysql -u root -p
-- Créer un utilisateur avec tous les privilèges
CREATE USER 'phpmyadmin_user'@'localhost' IDENTIFIED BY 'mot_de_passe_fort';
-- Accorder tous les privilèges
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin_user'@'localhost' WITH GRANT OPTION;
-- Appliquer les changements
FLUSH PRIVILEGES;
-- Quitter
EXIT;
💡 Astuce : Remplacez mot_de_passe_fort par un mot de passe complexe et unique.
Renforcer la sécurité
Configurer l'authentification HTTP
Ajoutez une couche de sécurité supplémentaire avec l'authentification HTTP.
# Installer apache2-utils
sudo apt install apache2-utils -y
# Créer un fichier de mots de passe
sudo htpasswd -c /etc/nginx/.htpasswd admin_user
sudo nano /etc/nginx/sites-available/phpmyadmin
location / {
auth_basic "Zone Restreinte";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ =404;
}
sudo systemctl restart nginx
Changer l'URL d'accès
Modifiez l'URL par défaut pour plus de sécurité.
sudo nano /etc/nginx/sites-available/phpmyadmin
location /mon-panel-secret {
auth_basic "Zone Restreinte";
auth_basic_user_file /etc/nginx/.htpasswd;
alias /var/www/phpmyadmin;
index index.php;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
Restreindre l'accès par IP
Limitez l'accès à phpMyAdmin à certaines adresses IP.
location /phpmyadmin {
# Autoriser uniquement ces IPs
allow 123.456.789.0;
allow 192.168.1.0/24;
deny all;
auth_basic "Zone Restreinte";
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ =404;
}
Configuration avancée de phpMyAdmin
Éditez le fichier de configuration pour optimiser phpMyAdmin.
sudo nano /etc/phpmyadmin/config.inc.php
// Augmenter le timeout de session
$cfg['LoginCookieValidity'] = 3600;
// Forcer HTTPS
$cfg['ForceSSL'] = true;
// Masquer les bases de données système
$cfg['Servers'][$i]['hide_db'] = '^(information_schema|performance_schema|mysql|sys)$';
// Limiter le nombre de lignes affichées
$cfg['MaxRows'] = 50;
// Activer le mode compression
$cfg['ZipDump'] = true;
$cfg['GZipDump'] = true;
Vérification et test
Testez votre installation phpMyAdmin.
Checklist de vérification :
| Élément | Statut |
|---|---|
| phpMyAdmin accessible via HTTPS | ✅ |
| Authentification HTTP fonctionne | ✅ |
| Connexion MySQL réussie | ✅ |
| Certificat SSL valide | ✅ |
| Bases de données Pterodactyl visibles | ✅ |
https://phpmyadmin.votredomaine.com
Connectez-vous avec :
- Utilisateur :
phpmyadmin_user(ou votre utilisateur MySQL) - Mot de passe : celui que vous avez défini
Dépannage
# Vérifier les permissions
sudo chown -R www-data:www-data /var/www/phpmyadmin
sudo chmod -R 755 /var/www/phpmyadmin
# Vérifier que PHP-FPM fonctionne
sudo systemctl status php8.1-fpm
# Redémarrer si nécessaire
sudo systemctl restart php8.1-fpm
# Vérifier que MySQL fonctionne
sudo systemctl status mysql
# Tester la connexion
mysql -u phpmyadmin_user -p
💬 Besoin d'aide ?
Si vous rencontrez des difficultés :
🎉 Félicitations !
phpMyAdmin est maintenant installé et sécurisé sur votre serveur Pterodactyl. Vous pouvez gérer vos bases de données facilement et en toute sécurité !

