Files
site/TROUBLESHOOTING_API.md
2026-01-04 11:06:23 +01:00

120 lines
3.5 KiB
Markdown

# Résolution des problèmes d'accès à l'API
## Problème : `net::ERR_NAME_NOT_RESOLVED`
Si vous rencontrez l'erreur `net::ERR_NAME_NOT_RESOLVED` lors de l'accès à l'API, cela signifie que le navigateur ne peut pas résoudre le nom de domaine `api.ditesleenchanson.fr`.
### Causes possibles
1. **Le domaine n'existe pas encore**
- Le sous-domaine `api.ditesleenchanson.fr` n'a pas été créé dans votre gestionnaire DNS
2. **Le domaine n'est pas configuré correctement**
- Les enregistrements DNS ne pointent pas vers le bon serveur
- Le DNS n'a pas encore propagé les changements (peut prendre jusqu'à 48h)
3. **Problème de configuration locale**
- La variable d'environnement `VITE_API_URL` pointe vers un domaine inaccessible
- Vous êtes en développement local mais l'URL pointe vers la production
### Solutions
#### 1. Vérifier la configuration de l'URL de l'API
Vérifiez le fichier `.env` dans `site/src/.env` :
```env
# Pour le développement local
VITE_API_URL=http://localhost:8000
# Pour la production (uniquement si le domaine est configuré)
VITE_API_URL=https://api.ditesleenchanson.fr
```
#### 2. Vérifier que l'API est accessible
**En développement local :**
- Assurez-vous que l'API Laravel est démarrée sur `http://localhost:8000`
- Testez l'accès à `http://localhost:8000/health` dans votre navigateur
**En production :**
- Vérifiez que le domaine `api.ditesleenchanson.fr` existe et pointe vers votre serveur
- Testez l'accès à `https://api.ditesleenchanson.fr/health` dans votre navigateur
- Vérifiez les enregistrements DNS de votre domaine
#### 3. Configuration DNS
Pour que `api.ditesleenchanson.fr` fonctionne, vous devez :
1. **Créer un enregistrement DNS de type A ou CNAME**
- Type A : pointe directement vers l'IP de votre serveur
- Type CNAME : pointe vers un autre domaine (ex: `ditesleenchanson.fr`)
2. **Configurer le serveur web** (Nginx/Apache)
- Créer un virtual host pour `api.ditesleenchanson.fr`
- Configurer le SSL/TLS (certificat Let's Encrypt recommandé)
3. **Vérifier la configuration Laravel**
- Dans `api/src/.env`, définir `APP_URL=https://api.ditesleenchanson.fr`
- Configurer `FRONTEND_URL` pour autoriser les requêtes depuis le frontend
#### 4. Test de connectivité
Pour tester si le domaine est accessible :
```bash
# Test DNS
nslookup api.ditesleenchanson.fr
# Test HTTP
curl https://api.ditesleenchanson.fr/health
# Test depuis le navigateur
# Ouvrir : https://api.ditesleenchanson.fr/health
```
### Configuration recommandée
#### Développement local
**Fichier `site/src/.env` :**
```env
VITE_API_URL=http://localhost:8000
```
**Démarrer l'API Laravel :**
```bash
cd api/src
php artisan serve
# L'API sera accessible sur http://localhost:8000
```
#### Production
**Fichier `site/src/.env` :**
```env
VITE_API_URL=https://api.ditesleenchanson.fr
```
**Fichier `api/src/.env` :**
```env
APP_URL=https://api.ditesleenchanson.fr
FRONTEND_URL=https://dites-le-en-chanson.fr
```
### Vérification après déploiement
1. Vérifier que l'API répond : `https://api.ditesleenchanson.fr/health`
2. Vérifier les logs de l'API pour les erreurs CORS
3. Vérifier la console du navigateur pour les erreurs de connexion
4. Tester le processus de paiement complet
### Support
Si le problème persiste après avoir vérifié ces points :
1. Vérifiez les logs de l'API Laravel (`api/src/storage/logs/laravel.log`)
2. Vérifiez les logs du serveur web (Nginx/Apache)
3. Vérifiez la configuration DNS avec votre hébergeur
4. Contactez le support technique