Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Php 4.3.4 instable sous windows XP

3 réponses
Avatar
zlm_zlm2004
Bonjour,
je suis confronté à un problème d'instabilité de PHP 4.3.4 sous
Windows XP en local.
J'écris un analyseur de XML. Pour construire l'arborescence je fais
appel de façon intensive à la récursivité. Les profondeurs ne sont pas
excessives. Au plus 10 appels récursifs emboités. Mais il y'a autant
d'appels que de noeuds XML. Chaque niveau de récursivité en attente
contient une chaîne de caractères de quelques dizaines de caractères.
Mes plus gros fichiers ne dépassent pas 100 KO. D'une façon
imprévisible, sur certains fichiers analysés, j'obtiens le message
'Erreur CGI' sans aucune autre indication d'erreur.
Il suffit que je supprime un noeud même vide comme <a></a> pour que
mes programmes donnent le résultat escompté. Si je remplace ce noeud
par une chaîne de plusieurs centaines de caractères, tout se passe
bien également. Enfin si j'execute mes programmes chez mon hébergeur
favori(?), free.fr, avec le jeu de données produisant les "abort" de
PHP, dans un environnement encore plus contraint en mémoire que sur
mon ordinateur local, je n'ai strictement aucun problèmes.
Mes questions enfin:
. comment Php gère-t-il ses appels de fonctions, quelle est la taille
incompressible consommée à chaque appel récursif ?
. comment se fait-il que je n'obtienne aucun message d'erreur de la
part de PHP, stack overfow ou autre.
. comment puis-je influer sur ces paramètres de taille (hormis
memory_limit que j'ai gonflé à 50M sans résultats, il est à 5M chez
free et ça marche)
. comment puis-je tracer ce problème. Je suis certain que toutes mes
récursions se terminent correctement.
. PHP sous Windows XP est-il connu comme étant fragile ?

Je voudrais éviter de recompiler PHP sous windows en mode debug.
Je suis dans la panade maximum, des délais à respecter et ce @!!¤#!!
de système qui se plante.

Merci de m'avoir lu jusqu'au bout.
Bien cordialement,
Claude Animo
Claude point Animo @ free point fr

3 réponses

Avatar
Thibaut Allender

imprévisible, sur certains fichiers analysés, j'obtiens le message
'Erreur CGI' sans aucune autre indication d'erreur.


tu fais tourner PHP en mode CGI ?
tout de meme pas sous IIS ?

. PHP sous Windows XP est-il connu comme étant fragile ?


un peu plus que sous linux, les bug fixes qui sortent concernent souvent
la version win32
et sous IIS, surement bcp plus qu'avec apache en tous cas ;)

si tu veux la solution la plus solide possible, utilise la derniere
version (4.3.5, ou mieux, 4.3.6 dans qq jours) qui corrige deja de
nombreux bugs de la 4.3.4 que tu utilises, et surtout, couplé a apache,
en module

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org

Avatar
Savut
Le probleme ca vient de ta configuration IIS et PHP qui est en mode CGI,
alors que tu devrais l'installer en ISAPI pour que ca roule beaucoup plus
rapidement que CGI. J'ai pense ecrire comment l'installer en ISAPI, mais ce
lien explique pas mal le necessaire.
http://www.macromedia.com/devnet/mx/dreamweaver/articles/php_iis.html

Si t'a de quoi tu comprend pas, gene toi pas. Et puis l'article suggere que
en mode ISAPI, tu peux apercevoir des instabilite, mais cela n'arrive que si
ton system est deja comme des spaguetti. Sinon, de ma part, je n'ai jamais
eu des problemes chez mes clients.

Savut
Avatar
Pascal (Collectours)
Bonjour,
Je ne puis fournir que quelques idées (n'ayant utilisé php antan en version
windows que sous 98, et "tout fait").
- Votre serveur web (pas mentionné dans le post original : apache, iis ?)
produit il un fichier log d'erreur, et si oui que dit-il ?
- Cela ressemble à une erreur 500 (si, par exemple, votre programme produit
une erreur à l'éxécution avant d'avoir généré une quelconque sortie) - un
petit print du content-type, même text/plain qui va bien, suivi de flush()
en début de programme aiderait peut etre)
- Votre programme utilise-t-il des fonctions XML built-in de php pour faire
son analyse ?, si oui phpfinfo vous donnera la version d'expat utilisé.
Seulement quelques hypothèses de ma part, j'aurais pu aider plus en
Linux/apache;
P.S : Avez-vous compilé vous-même votre version php sous windows ?
Cordialement
Pascal