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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Erreur 500 et résultats aléatoires sur serveur


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Erreur 500 et résultats aléatoires sur serveur
    Bonjour à tous !

    Dans le cadre d'un stage, j'ai développé une interface permettant de faire un début de liaison entre le logiciel de gestion EBP et un site crée avec Prestashop. Sous EBP, après avoir exporté la liste de ses produits au format .xml, mon interface se charge de "convertir" le fichier en .csv, de sorte à ce qu'il soit compatible avec le module d'import intégré à Prestashop (l'interface gère l'ordre et les noms des colonnes, les types des champs, ...).

    Je ne serai pas le principal utilisateur de cette interface, le but est donc d'économiser un maximum d'étapes entre EBP et Prestashop. Elle sera utilisée toutes les semaines. La suppression des produits avant l'import est activée, et tous les produits sont replacés en BDD (ainsi, les mises à jour effectuées sur les produits existants sur EBP dans la semaine sont répercutées à la mise à jour de Prestashop).

    Je dispose d'une première liste de 101 articles pour mes tests. Plus tard, la liste comportera 1400 produits.

    J'ai effectué tous les tests en local, l'interface fonctionne, et l'import se fait sans accroc (les 101 produits sont importés en moins de deux minutes, tous les champs sont à leurs places).

    Mais voilà maintenant une semaine que je me bats contre le serveur du site afin de faire fonctionner le tout. Mon interface fonctionne, mais une erreur 500 m'est renvoyée après la confirmation de l'import, et seuls 75 produits sont importés ... environ.

    Tout le cœur du problème se base sur ce mot, environ. Effectivement, en mesurant le temps d'exécution de l'envoi avec Firebug, je constate que la durée d'envoi n'est jamais fixe, et que le nombre de produits ne l'est pas non plus. Voici quelques exemples pour illustrer :

    - Fichier de 70 articles (13 Ko) : importé avec succès en 53 secondes.

    - Fichier de 76 articles (14 Ko) (on prend ce fichier pour référence pour les essais suivants, aucun changement n'y est appliqué) : 73,5 articles importés en 52 secondes (le .5 signifie que seule la moitié des champs a été importée), puis erreur 500.

    - Deuxième essai, 74 articles sont importés avec succès en 48 secondes, puis erreur 500.
    - Troisième essai, 74,5 articles importés en 48 secondes puis erreur 500.
    - Quatrième essai, 73 articles importés en 49 secondes puis erreur 500.

    - Fichier de 101 articles (18 Ko) : 72,5 produits importés en une minute, puis 74 produits importés en 52 secondes, ...

    Parfois, le champ peut aussi être importé partiellement, auquel cas une erreur m'est renvoyée (ici, ça doit venir du fait que mon fichier d'articles contient les liens absolus des images des produits, et que le lien est tronqué) :

    Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file in /chemin_absolu/classes/ImageManager.php on line 365

    Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/chemin_absolu/img/p/7/6/76.jpg' is not a valid JPEG file in /chemin_absolu/classes/ImageManager.php on line 365

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /chemin_absolu/classes/ImageManager.php on line 190
    Autre phénomène amusant : impossible d'obtenir un quelconque message d'erreur.

    - L'hébergement est chez 1&1. Version de PHP de développement activée, affichage des erreurs activé.

    - Mode de développement activé dans les fichiers Prestashop (toutes erreurs affichées).

    - 1&1 autorise les modifications du php.ini et fournit même un script pour permettre d'appliquer les changements plus rapidement. J'ai donc crée un php.ini perso avec ces paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    allow_url_fopen = On
    error_log = /chemin_absolu/.../error.log
    log_errors = On
    default_socket_timeout = 600
    max_execution_time = 600
    max_input_time = 600
    mysql.connect_timeout = 600
    upload_max_filesize = 64M
    - La page d'erreur 500 renvoyée ne comporte aucune autre indication concernant l'origine de l'erreur. J'ai juste le "Oops, something went wrong." de Prestashop 1.5.4.1

    - Le log d'erreurs que je génère dans mon php.ini reste désespérément vide. Il m'affiche toutes les autres erreurs n'ayant pas de rapport avec l'import (que je corrige ensuite), mais pas moyen de savoir ce qui plante.

    J'ai déjà posté mon problème sur les forums de Prestashop, les solutions données n'ont pour l'instant pas changé grand chose (si ce n'est que j'ai mis à jour la version de Prestashop, en passant de la 1.3 à la 1.5).

    Existe-il une solution à laquelle je n'aie pas pensé, ou que j'aie loupé sur le net, ou dois-je modifier mon interface pour la rendre plus contraignante côté utilisateur (subdiviser le .csv général en plusieurs dizaines de petits .csv passant à l'import ; effectuer la mise à jour de la BDD Prestashop en local, puis importer cette BDD sur le serveur ; ...) ?

    Merci d'avance !

    EDIT : Je dispose désormais d'un fichier de 910 articles (147 Ko). Même diagnostic. Passage réussi en 12 minutes en local, erreur 500 sur le serveur après 53 secondes et 74 articles importés.
    Dernière modification par _Mac_ ; 08/07/2013 à 21h06. Motif: Merci de mettre en forme avec les balises adéquates ([code] en particulier pour le code et la configuration)

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    A part aller voir dans l'error_log d'Apache et augmenter la taille de la mémoire pour PHP je n'ai pas d'idée.

  3. #3
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Effectivement, à part un problème de mémoire consommé par le script... C'est pas impossible si tu fais de la gd dans le script.

    Quel version de PHP est sur le serveur ? Ca peut avoir son importance car le garbage colector n'existe que depuis la 5.3, et pour peu que tu ais la toute dernière version, il y a peut être moyen d'optimiser les traitements via les generators...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses !

    Même après avoir activé le log d'erreurs, pas moyen d'en obtenir une qui soit relative au problème auquel je fais face (j'obtiens d'autres erreurs que je parviens à corriger ensuite).

    D'après phpinfo(), memory_limit est à 128M, je l'ai passé à -1, même diagnostic.

    PHP est en version 5.2 sur le serveur, je suis passé en 5.4, me suis documenté sur le principe du garbage_collector et ai bien vérifié qu'il était activé, puis j'ai à nouveau lancé l'importation ... sans succès, le problème persiste.
    Dernière modification par Invité ; 09/07/2013 à 09h37.

Discussions similaires

  1. [ZF 1.8] Erreur 500 Internal Server Error sur ->authenticate();
    Par pbraems dans le forum Zend_Acl & Zend_Auth
    Réponses: 1
    Dernier message: 23/07/2009, 11h32
  2. Réponses: 1
    Dernier message: 18/05/2009, 15h07
  3. Erreur programme d'envoi fichier sur serveur ftp
    Par batssa dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2007, 14h30
  4. Réponses: 3
    Dernier message: 13/03/2007, 16h00
  5. Erreur de connexion à ma base sur serveur Debian - Apache
    Par GLDavid dans le forum Installation
    Réponses: 4
    Dernier message: 24/09/2003, 10h29

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