Erreurs fréquentes par service
Guide des Erreurs Fréquentes sur VPS RedHeberg
Ce guide recense les erreurs les plus courantes rencontrées sur nos VPS et leurs solutions détaillées.
Erreurs Nginx
Erreur 502 Bad Gateway
Cause : Nginx ne peut pas communiquer avec PHP-FPM ou l'application backend.
Diagnostic :
# Vérifier le statut de Nginx et PHP-FPM
systemctl status nginx
systemctl status php8.2-fpm
# Vérifier les logs Nginx
tail -f /var/log/nginx/error.log
# Tester la socket PHP-FPM
ls -la /run/php/php8.2-fpm.sock
Solution :
# Redémarrer PHP-FPM
sudo systemctl restart php8.2-fpm
# Vérifier la configuration upstream dans Nginx
sudo nginx -t
# Corriger les permissions de socket
sudo chown www-data:www-data /run/php/php8.2-fpm.sock
sudo chmod 660 /run/php/php8.2-fpm.sock
# Redémarrer Nginx
sudo systemctl restart nginx
Erreur 504 Gateway Timeout
Cause : Le timeout de connexion entre Nginx et le backend est dépassé.
Solution :
# Augmenter les timeouts dans /etc/nginx/sites-available/votre-site
sudo nano /etc/nginx/sites-available/default
# Ajouter dans le bloc location ~ \.php$ :
# fastcgi_read_timeout 300;
# fastcgi_connect_timeout 300;
# fastcgi_send_timeout 300;
# Dans /etc/php/8.2/fpm/php.ini
sudo nano /etc/php/8.2/fpm/php.ini
# max_execution_time = 300
# max_input_time = 300
# Redémarrer les services
sudo systemctl restart nginx php8.2-fpm
Erreur 403 Forbidden
Cause : Permissions incorrectes ou directive index manquante.
Diagnostic :
# Vérifier les permissions du répertoire web
ls -la /var/www/html/
# Vérifier la configuration Nginx
sudo nginx -t
# Contrôler les logs
tail -f /var/log/nginx/error.log
Solution :
# Corriger les permissions
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
sudo chmod 644 /var/www/html/index.html
# Vérifier la directive index dans Nginx
sudo nano /etc/nginx/sites-available/default
# index index.html index.htm index.php;
sudo systemctl reload nginx
Erreurs MySQL/MariaDB
Can't Connect to MySQL Server
Cause : Service arrêté, bind-address incorrect ou pare-feu.
Diagnostic :
# Vérifier le statut du service
systemctl status mysql
systemctl status mariadb
# Tester la connexion locale
mysql -u root -p
# Vérifier les ports d'écoute
netstat -tuln | grep 3306
ss -tuln | grep 3306
Solution :
# Démarrer le service
sudo systemctl start mysql
sudo systemctl enable mysql
# Vérifier bind-address dans /etc/mysql/mariadb.conf.d/50-server.cnf
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# bind-address = 0.0.0.0 # Pour autoriser toutes les IPs
# bind-address = YOUR_SERVER_IP # Pour une IP spécifique
# Redémarrer MySQL
sudo systemctl restart mysql
# Créer un utilisateur distant si nécessaire
mysql -u root -p -e "CREATE USER 'monuser'@'%' IDENTIFIED BY 'motdepasse';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON *.* TO 'monuser'@'%';"
mysql -u root -p -e "FLUSH PRIVILEGES;"
Too Many Connections
Cause : Limite de connexions simultanées atteinte.
Solution :
# Vérifier les connexions actuelles
mysql -u root -p -e "SHOW PROCESSLIST;"
mysql -u root -p -e "SHOW VARIABLES LIKE 'max_connections';"
# Augmenter la limite dans /etc/mysql/mariadb.conf.d/50-server.cnf
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# [mysqld]
# max_connections = 500
# max_connect_errors = 10000
# Redémarrer MySQL
sudo systemctl restart mysql
# Tuer les connexions inactives
mysql -u root -p -e "KILL CONNECTION_ID;"
Erreurs PHP-FPM
502 Bad Gateway avec PHP-FPM
Cause : Pool PHP-FPM arrêté ou mal configuré.
Diagnostic :
# Vérifier les pools PHP-FPM
sudo systemctl status php8.2-fpm
sudo php-fpm8.2 -t
# Contrôler les logs PHP-FPM
tail -f /var/log/php8.2-fpm.log
Solution :
# Vérifier la configuration du pool
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
# Paramètres critiques :
# listen = /run/php/php8.2-fpm.sock
# listen.owner = www-data
# listen.group = www-data
# listen.mode = 0660
# pm = dynamic
# pm.max_children = 50
# pm.start_servers = 5
# pm.min_spare_servers = 5
# pm.max_spare_servers = 35
# Redémarrer PHP-FPM
sudo systemctl restart php8.2-fpm
# Vérifier que la socket existe
ls -la /run/php/php8.2-fpm.sock
Erreurs Docker
Port Already in Use
Cause : Un autre processus utilise déjà le port.
Diagnostic :
# Identifier le processus qui utilise le port
sudo netstat -tulpn | grep :80
sudo ss -tulpn | grep :80
sudo lsof -i :80
# Vérifier les conteneurs Docker actifs
docker ps -a
Solution :
# Arrêter le conteneur utilisant le port
docker stop nom_conteneur
# Ou arrêter le service système
sudo systemctl stop apache2
sudo systemctl stop nginx
# Changer le port dans docker-compose.yml
nano docker-compose.yml
# ports:
# - "8080:80" # Utiliser 8080 au lieu de 80
# Relancer le conteneur
docker-compose up -d
Network Conflict
Cause : Conflit de sous-réseau Docker avec le réseau local.
Solution :
# Lister les réseaux Docker
docker network ls
# Supprimer les réseaux inutilisés
docker network prune
# Configurer un sous-réseau personnalisé
nano /etc/docker/daemon.json
{
"default-address-pools": [
{
"base": "172.20.0.0/16",
"size": 24
}
]
}
# Redémarrer Docker
sudo systemctl restart docker
Erreurs Node.js
EADDRINUSE (Address Already in Use)
Cause : Le port est déjà utilisé par un autre processus.
Diagnostic :
# Trouver le processus utilisant le port
sudo lsof -