8768 sujets

Développement web côté serveur, CMS

Bonjour à tous !

Mon souci du jour est le suivant : mes templates personnalisés ne s'affichent pas en production (ils fonctionnent bien en développement).

Mon projet est réalisé sous Symfony 5.4 il implémente webpacke Encore et la suite UX ; mes templates sont situés dans Bundles/TwigBundle/Exception ; ils fonctionnent bien dans l'environnement de dev en local (Wamp->Apache) mais quand j'affiche une erreur en prod (serveur Apache), j'obtiens seulement la page d'erreur type de Symfony. Je ne comprends pas pourquoi.

J'ai du mal à récupérer des infos pour debug : je n'ai rien dans les logs serveur, et quand je retablis la barre debug pour infos dans le fichier .env ... elle ne s'affiche pas Smiley ohwell .
Rien côté console ou réseau dans les outils dev.

Il y aurait possiblement quelquechose à configurer côté serveur prod mais je ne sais pas quoi et quand je demande à l'assistance ils bottent en touche .

Me voilà donc bien avancé ... Quelqu'un a t il déjà rencontré ce problème ? Aurait éventuellement une idée, une piste ?

Au plaisir de vous lire Smiley biggrin
Salut

Que te dise les logs de symfony prod ? /var/log/prod?
Modifié par JENCAL (26 Jul 2023 - 11:01)
Salut Jencal !

Dans le log, rien ne s'inscrit suite à l'affichage d'une page d'erreur. les deux derniers messages que j ai datent du deploiement :
[2023-07-24T00:30:31.846573+00:00] php.DEBUG: User Warning: Configure the "curl.cainfo", "openssl.cafile" or "openssl.capath" php.ini setting to enable the CurlHttpClient {"exception":{"Symfony\\Component\\ErrorHandler\\Exception\\SilencedErrorContext":{"severity":512,"file":"C:\\wamp64\\www\\MercStation\\vendor\\symfony\\http-client\\HttpClient.php","line":58,"trace":[{"file":"C:\\wamp64\\www\\MercStation\\var\\cache\\dev\\ContainerCVRSNvu\\App_KernelDevDebugContainer.php","line":1195,"function":"create","class":"Symfony\\Component\\HttpClient\\HttpClient","type":"::"}],"count":1}}} []
et aussi
[2023-07-24T00:30:31.846787+00:00] php.DEBUG: User Notice: Upgrade the curl extension or run "composer require amphp/http-client:^4.2.1" to perform async HTTP operations, including full HTTP/2 support {"exception":{"Symfony\\Component\\ErrorHandler\\Exception\\SilencedErrorContext":{"severity":1024,"file":"C:\\wamp64\\www\\MercStation\\vendor\\symfony\\http-client\\HttpClient.php","line":65,"trace":[{"file":"C:\\wamp64\\www\\MercStation\\var\\cache\\dev\\ContainerCVRSNvu\\App_KernelDevDebugContainer.php","line":1195,"function":"create","class":"Symfony\\Component\\HttpClient\\HttpClient","type":"::"}],"count":1}}} []

Quand je demande a GPT ce qu'il en pense il me dit :
- Mettre à jour l'extension curl de PHP
- faire : composer require amphp/http-client:^4.2.1

J'ai fait ça mais ça ne résout pas le probleme
Tu ne peux pas ne rien avoir après une erreur 500 symfony. cherche bien dans tous les fichiers logs je sais pas... essaye de clear le cache avant.

Dans quel fichier à tu regardais ?
Modifié par JENCAL (26 Jul 2023 - 11:33)
dans var/log (dans le serveur de prod), il y a un fichier dev.log, c'est ce que j'ai regardé, il n'y a que celui la a cet endroit. Je vide le cache presque a chaque opération par acquit de conscience.

J'ai peut être pas tout dit : sur mon appli j'ai aussi un souci à régler qui concerne Encore. Au déploiement je ne peux pas executer npm run build, ca ne fonctionne pas et j'ai un message d'erreur. J'ai essayé de résoudre le problème plusieurs fois mais pas réussi.
Ca serait un probleme de version du webpack, j'ai installé une version antérieure du webpack, celle qui colle avec ma version de PHP (7.4.26) d'après Packagist, mais ça n'a rien changé. Je compte tout mettre en PHP 8.0, pour voir, mais c'était tout en bas de ma todo list, puisque ca ne m'empeche pas de faire marcher le site.

Au fil de mes recherches j'étais tombé sur ce code "AH00112" :
"Le message d'erreur "AH00112" est spécifique à Apache, le serveur web, et signifie généralement qu'Apache n'a pas réussi à ouvrir un fichier de journal (log). Cela pourrait être dû à une variété de problèmes, tels que des permissions de fichier incorrectes, un chemin d'accès au fichier de journal incorrect, ou une pénurie de ressources système."
C'est suite à ça que j'ai contacté l'assistance de mon serveur, puisque Symfony est censé prendre en charge le système de message d'erreurs, mais j'ai eu une réponse évasive, peu concernée : "si tous les chemins sont bien paramétrés ca doit fonctionner" ... mais il n y a rien a parametrer concernant les messages d'erreur sous Symfony ?

Donc, il semble que les erreurs ne s'écrivent pas dans les log et c'est pour ça que j'ai rien à ce niveau, je pense que ca vient d'Apache mais je ne peux pas etre certain que ce ne soit pas lié à mon problème avec Encore .
mais tu coup dans ton 1er post tu dis "j'obtiens seulement la page d'erreur type de Symfony"

Elle ressemble à quoi cette erreur ? car si c'est une erreur symfony alors => log 100%

Mais si ce n'est pas une erreur Symfony alors log apache.

Apparement, tu as peut être un problème si on en croit ton message d'erreur d'apache... mais c'est curieux. Là je ne sais pas trop quoi te dire, je suis pas expert apache/serveur
Modifié par JENCAL (26 Jul 2023 - 12:03)
C'est la page type Symfony en blanc et rouge avec le titre : "Oops! An Error Occurred"
Alors que j'ai des templates flambants et raccord avec le graphisme général du site Smiley fache

Merci pour ton aide Jencall, j'ai tenté sur le forum car je me suis dit que le problème était peut être "lambda", bien connu des utilisateurs Symfony et aisément corrigeable.

je vais relancer l'assistance serveur et leur mettre le max d'éléments en mains ; je retiens de notre échange que comme il me semblait, il n y a rien de spécial à paramétrer sous Symfony en prod pour accès aux templates custom d'erreurs.

Je ne mets pas encore le topic en résolu, je viendrai écrire le fin mot de l'histoire quand ce sera réglé, bientôt.
JE ne comprend pas pourquoi tu as une erreur symfony et rien dans les logs. c'est illogique Smiley smile
Voilà, j'ai enfin mes pages d'erreur custom en mode prod.

Elles étaient situées dans "templates/Bundles/TwigBundle/Exception" et ça marchait sur serveur local, mais sur serveur de prod le chemin correct était : "templates/bundles/TwigBundle/Exception" .....

Et ouais ....

Et pourquoi y a t il par défaut une majuscule à Bundle ? -_- ... Bref. Tout est bien qui finit bien.

J'ai toujours rien qui s'écrit dans les logs par contre, j'ai déclenché l'erreur plusieurs fois pour les tests, je n'ai aucun message .. Bizarre.

Merci pour tes réponses Jencal à bientôt !