Aller au contenu

PHP : Plantage de exec() avec paiement ATOS


sdelaunay

Messages recommandés

Bonjour,

Je rencontre un problème récurrent sur le paiement avec Apache 1.3 sous Windows et le module Atos.

Lorsqu'un paiement doit être effectué par CB, on appel le fichier exécutable request.exe afin qu'il puisse générer le lien permettant d'accèder au paiement sécurisé du serveur bancaire.

hors, de manière aléatoire, lorsque j'exécute l'exécutable avec la fonction exec().

$result = exec(($path_bin.' '.$parm));

$parm contient le merchant_id habituel, et le path_bin le chemin d'accès de l'exécutable.

Au moment ou l'appel de la fonction est appelé, Apache mouline et prends une place importante en mémoire (il passe en gros de 20ko à + de 80), et le site n'est plus accessible. Il faut "tuer" la tâche Apache, parfois plusieurs fois, ou redémarrer le service pour que cela fonctionne à nouveau.

J'ai noté également que lorsque cela plante, il n'est plus possible d'exécuter la commande exec() de PHP tant que le service n'a pas été redémarré (même en appelant exec() avec un autre programme).

Merci de vos retours ou aide sur ce sujet,

Lien vers le commentaire
Partager sur d’autres sites

Est ce que tu as pu tester sur un environnement unix ?

Parce que utiliser exec sous un Windows, c'est pas forcément le truc le plus safe.

Sinon pareil avec apache2.

Non je ne peux pas tester sous Linux car le client est sous Windows et utilise une base SQL Server.

J'ai même loggé tous les appels sur request.exe, tout est conforme.

A chaque plantage, Apache prends 10 à 20ko de +, jusqu'à planter...

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...
Bonjour,

Je rencontre un problème récurrent sur le paiement avec Apache 1.3 sous Windows et le module Atos.

Lorsqu'un paiement doit être effectué par CB, on appel le fichier exécutable request.exe afin qu'il puisse générer le lien permettant d'accèder au paiement sécurisé du serveur bancaire.

hors, de manière aléatoire, lorsque j'exécute l'exécutable avec la fonction exec().

$result = exec(($path_bin.' '.$parm));

$parm contient le merchant_id habituel, et le path_bin le chemin d'accès de l'exécutable.

Au moment ou l'appel de la fonction est appelé, Apache mouline et prends une place importante en mémoire (il passe en gros de 20ko à + de 80), et le site n'est plus accessible. Il faut "tuer" la tâche Apache, parfois plusieurs fois, ou redémarrer le service pour que cela fonctionne à nouveau.

J'ai noté également que lorsque cela plante, il n'est plus possible d'exécuter la commande exec() de PHP tant que le service n'a pas été redémarré (même en appelant exec() avec un autre programme).

Merci de vos retours ou aide sur ce sujet,

salut,

peut etre que ceci pourra t'aider :

http://fr.php.net/manual/en/function.exec.php#86444

ce que je te conseil aussi c'est d'echo la command au lieu de l'exec et de la lancer a la main (cmd.exe) pour voir si t'a pas un retour d'erreur.

ps :c'est quel windows?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...