Bonjour,
J'ai une application PHP déployée sur une 20 aine de serveurs Debian / Windows 2003, 2008 et récemment 2012. Tous les serveurs Windows ont les même versions Apache et php.
Dans cette application j'ai besoin de signer un fichier XML généré et j'utilise pour cela xmlsec via popen() :
Cela fonctionne partout sauf sur mes serveurs sous Windows 2012. (A noter que c'est pareil avec exec()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $cmd = "xmlsec1 sign --output $outputName --keys-file $keyfile $tmplName 2>&1"; $p = popen( $this->cmd, 'r'); $read = fread($p , 4096); pclose($p);
Le fichier output est bien crée mais il est vide. Je n'ai aucune sortie de la commande (ce qui est le comportement quand elle fonctionne normalement).
Les variables $outputName $keyfile $tmplName ne sont à priori pas en cause car quand j'utilise la valeur de echo($cmd) directement dans cmd.exe ou power_shell cela fonctionne.
Quel subtilité est donc introduite par Windows 2012 par rapport aux autres OS ?
Partager