Objectif
Un journal permet de transformer un message vague — page blanche, erreur 500, redémarrage ou délai d’attente — en hypothèse vérifiable. Ce guide présente une méthode prudente pour collecter le contexte, corréler les événements et identifier les limites de l’offre sans confondre un problème applicatif avec une indisponibilité de service.
Pour un projet applicatif, reliez cette procédure à un serveur VPS et au guide pour déployer une application depuis Git.
Laravel organise ses journaux en canaux configurés dans config/logging.php, avec notamment single, daily, errorlog, syslog et stack [1]. Les détails effectivement accessibles — fichiers, console, rotation, rétention, téléchargement ou agrégation — dépendent de NovaHoster et de votre forfait.
Prérequis
Vous devez connaître le domaine concerné, l’heure approximative du problème, le commit déployé, l’environnement et l’action qui reproduit l’erreur. Préparez un moyen de tester avec un compte non administrateur et retirez les données personnelles ou secrets avant de partager un extrait de journal.
Confirmez dans l’Espace client si vous avez accès aux logs web, PHP, Node.js, build et système, ainsi qu’à leur durée de rétention. L’absence d’un journal dans l’interface ne signifie pas nécessairement qu’il n’existe pas ; elle peut refléter une limite d’accès ou d’offre.
Procédure
- Décrire le symptôme. Notez l’URL, la méthode HTTP, le code retourné, le navigateur ou client utilisé, l’heure et la fréquence. Distinguez une erreur constante d’une erreur intermittente : la première oriente souvent vers configuration ou code, la seconde vers timeout, quota, dépendance externe ou processus.
- Identifier le déploiement. Relevez le commit, la branche et les changements récents. Si l’erreur a commencé juste après une mise en ligne, comparez avec la dernière version fonctionnelle. Un retour arrière peut confirmer une régression, mais ne doit pas être réalisé sans considérer les migrations et les données.
- Consulter les journaux disponibles. Commencez par le journal correspondant au chemin : build pour une installation échouée, serveur web pour un 404/502, PHP ou Laravel pour une exception, processus Node.js pour un crash, base de données pour une connexion refusée. Utilisez la fonction prévue par l’interface ; l’accès SSH, la console, l’export ou le suivi en temps réel sont à confirmer selon l’offre.
- Filtrer par fenêtre temporelle. Cherchez l’heure du test, le code d’erreur, le chemin et un identifiant de requête s’il existe. Ne copiez pas tout le fichier. Un extrait comprenant quelques lignes avant et après l’erreur suffit généralement, après anonymisation.
- Analyser Laravel. Recherchez
storage/logs, le canal actif et le niveau configuré. Laravel propose huit niveaux de gravité, d’emergencyàdebug, et permet d’écrire via la façadeLog[1]. Vérifiez aussi les permissions destorageetbootstrap/cache, que Laravel doit pouvoir écrire en fonctionnement [2].
- Analyser Node.js. Distinguez une exception non gérée, un rejet de promesse, un port déjà occupé, une variable absente, une dépendance manquante et un arrêt par la plateforme. Ajoutez des messages structurés et non sensibles autour des étapes critiques. Les valeurs de
process.envsont des chaînes ; une comparaison ou conversion incorrecte peut donc produire un comportement inattendu [3].
- Comparer avec les ressources et limites. Un dépassement de mémoire, de durée d’exécution, de stockage de logs, de connexions ou de processus peut interrompre une application même si le code est correct. Les seuils et métriques accessibles varient selon le forfait : demandez à NovaHoster la limite exacte et l’horodatage observé plutôt que d’estimer.
- Reproduire avec un test minimal. Testez une route de santé, puis une route dépendant de la base et enfin l’action en erreur. Pour Laravel, une route de santé peut retourner
200ou500selon le démarrage de l’application [2]. Pour Node.js, vérifiez que le processus écoute le port fourni par l’environnement et que le serveur n’est pas limité àlocalhostlorsque la plateforme exige une écoute externe.
- Corriger puis vérifier. Modifiez une cause à la fois, déployez un commit identifiable et relancez le même test. Confirmez que les logs ne contiennent pas de mot de passe, jeton, cookie, en-tête d’autorisation ou donnée personnelle. Réduisez ensuite le niveau de verbosité si le diagnostic est terminé.
- Préparer l’escalade. Un ticket efficace comprend le service, le domaine, l’environnement, le commit, la période UTC ou locale, le code HTTP, le message exact anonymisé, les étapes de reproduction et les vérifications déjà réalisées. Ne communiquez jamais les secrets dans le ticket.
Cas d’erreur et diagnostic
| Symptôme | Ce qu’il faut vérifier en premier | Suite recommandée |
|---|---|---|
| HTTP 500 | Exception applicative, variable manquante, permission, migration | Lire le log Laravel/PHP, vérifier APP_DEBUG=false, tester la configuration et les droits d’écriture. |
| HTTP 502 ou 503 | Processus Node.js/PHP arrêté, mauvais port, timeout ou limite de processus | Contrôler le journal de processus et du proxy, puis confirmer la commande de démarrage et les limites NovaHoster. |
| HTTP 404 après déploiement | Racine web, route, réécriture ou artefact absent | Vérifier le répertoire public et la règle de routage. Laravel doit servir public [2]. |
| Logs vides | Mauvais canal, niveau trop élevé, fichier non accessible ou rétention expirée | Contrôler config/logging.php, LOG_LEVEL, l’heure du test et les logs disponibles dans l’Espace client [1]. |
| Le processus s’arrête sans exception claire | OOM, quota, signal de plateforme, dépendance externe | Demander les événements de plateforme et la métrique de ressources correspondant à l’heure précise. |
| Logs trop volumineux | Niveau debug, boucle de logs, absence de rotation | Utiliser un niveau adapté, corriger la source et confirmer la rétention/rotation disponible. Laravel documente notamment les canaux daily et monthly [1]. |
Questions fréquentes
Les logs sont-ils conservés indéfiniment ?
Puis-je activer APP_DEBUG=true en production ?
Pourquoi un log Laravel n’apparaît-il pas dans le fichier attendu ?
config/logging.php. Vérifiez la configuration effective, le niveau minimal et les permissions [1].Comment partager un extrait de log avec le support ?
Un redémarrage corrige-t-il toujours une erreur ?
Quand contacter l’Espace client
Contactez NovaHoster si vous ne voyez pas les journaux nécessaires, si les accès semblent insuffisants, si l’application est arrêtée par une limite de mémoire ou de durée, si un processus ne redémarre pas, si un domaine renvoie 502/503 malgré un code fonctionnel, ou si vous devez connaître la rétention, le quota de stockage, le nombre de processus et les options de suivi. Fournissez un extrait anonymisé et les informations de contexte ; ne transmettez pas de clé ou de mot de passe.
Maillage interne suggéré
- [Déployer une application depuis Git sur NovaHoster](#guide-1--déployer-une-application-depuis-git-sur-novahoster)
- [Configurer les environnements Laravel et Node.js](#guide-2--configurer-les-environnements-dune-application-laravel-ou-nodejs)
- [Comprendre les codes HTTP 404, 500 et 502]
- [Réduire et faire tourner les journaux applicatifs]
- [Vérifier les quotas et limites de son offre NovaHoster]
Sources techniques
[1] Laravel — Logging [2] Laravel — Deployment [3] Node.js — Environment Variables
Note éditoriale commune — limites d’offre et exactitude
NovaHoster peut proposer plusieurs niveaux de service. Les fonctions telles que déploiement Git automatisé, accès SSH, sélection de version PHP/Node.js, tâches cron, workers persistants, file d’attente, logs centralisés, métriques, restauration, compilation longue ou redémarrage automatique peuvent être conditionnées par le forfait, la région, la configuration du site ou les droits du compte. Ce bundle ne les présente pas comme garanties générales. Pour chaque projet, la source de vérité est l’Espace client et, en cas de doute, la confirmation écrite du support NovaHoster.
Références générales
Les affirmations techniques de ce bundle s’appuient sur les documentations officielles suivantes :
[1] Laravel — Configuration [2] Laravel — Deployment [3] Laravel — Logging [4] Git — git-remote [5] Node.js — Environment Variables [6] Node.js — The difference between development and production
*Document préparé pour NovaHoster — version éditoriale à valider contre les libellés et capacités exacts de l’Espace client.*
Les permissions et options visibles peuvent dépendre de votre formule ou de vos droits. Faites vérifier le contexte depuis l’Espace client.
Demander une vérification