IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP8] Erreur deprecated sur un serveur de prod mais pas en dev


Sujet :

Langage PHP

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut [PHP8] Erreur deprecated sur un serveur de prod mais pas en dev
    Bonjour,

    Nous avons passé 3 serveurs en PHP8 pour 2 applications similaires et liées :
    - un serveur de dev qui a les deux applications ;
    - un serveur de prod pour une appli de gestion interne ;
    - un serveur de prod exposé sur le web pour une appli qui fournit des données utilisées ensuite par l'appli de gestion interne.

    Nous avons bien sûr basculé le serveur de dev pour tester les 2 applications.

    Une fois les 2 serveurs de prod basculés, nous avons eu une belle page 500 sur une partie de l'application de gestion interne.
    Dans le error_log Apache de l'application, nous avons trouvé ceci :
    Citation Envoyé par Apache
    Required parameter $admis follows optional parameter $idEtudiant, referer:[url appelée par la page en erreur 500]
    Une recherche sur l'erreur nous a aiguillé sur la cause et nous avons pu la corriger.

    Nota : l'erreur n'était pas présente dans le code de l'application exposée au web car c'est dans une méthode spécifique à l'appli interne.

    La question qui nous taraude est : Pourquoi seul le serveur de prod a donné l'erreur et pas le serveur de dev ?

    Je viens de comparer les fichiers /etc/php8/apache2/php.ini et /etc/apache2/conf.d/mod_php8.conf des deux serveurs et ils sont identiques.

    Donc je n'ai pas la réponse à ma question et c'est ce qui m'amène à vous la poser.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 102
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 102
    Points : 8 212
    Points
    8 212
    Billets dans le blog
    17
    Par défaut
    Tu es sûr que ce sont bien ces fichiers de config qui sont effectivement chargés ?
    Tu peux checker dans phpinfo(), ligne "Loaded Configuration File" et suivantes

    Peut-être un error_reporting() ou un ini_set() qui redéfinit le niveau d'erreur
    Voir E_DEPRECATED
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 991
    Points
    2 991
    Par défaut
    Une erreur 500 est donc une erreur fatale et pas juste un warning. Si tes serveurs sont tous en php8, je ne pense pas qu'il faille chercher la cause du côté du niveau des erreurs (avec la fonction error_reporting).

    Je pense plutôt que l'erreur de code est bien présente sur chaque serveur mais que, juste, le cheminement qui a provoqué l'erreur en production n'avait pas été testé en dev. Est-ce possible ?

    As-tu reproduit la même action sur dev que celle qui a planté en production ?

    Seconde question : est-ce que tu as des tests unitaires (phpunit) qui couvre cette fonctionnalité ?

    Bonne journée
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Piste trouvée ce matin et qui sera testée par ma collègue ; En dev, nous utilisons Whoops pour afficher les erreurs et il semble que, par défaut, Whoops ignore les erreur de type E_DEPRECATED.

    Le module Whoops n'est pas chargé sur le serveur de prod.

    À suivre...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2019, 10h34
  2. Réponses: 5
    Dernier message: 17/01/2019, 15h39
  3. Réponses: 2
    Dernier message: 19/07/2007, 11h24
  4. Message d'erreur étrange sur mon serveur
    Par irnatene dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 28/11/2006, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo