J'ai un script php qui gère une entrée de formulaire. Pour des raisons de conception à la fois un peu hors de mon contrôle, et que je ne souhaite pas entièrement changer, je dois appeler un script perl avec les paramètres spécifiés dans le formulaire html.Appel de perl à partir de php?
J'ai assaini toutes les entrées, puis les ai sorties dans un fichier appelé input, qui est lu par le script perl nommé, par souci de brièveté dans cette question, script.pl. Script.pl devrait faire quelques choses et ensuite écrire toutes les sorties dans un fichier nommé output.
J'appelle le script perl de php comme ceci:
system('perl script.pl 2>errors');
Pas bon, rien ne se passe. la sortie n'est pas créée, les erreurs ne sont pas créées et l'effet secondaire ne se produit pas.
Mon apache s'exécute en tant qu'ID utilisateur et groupe www-data. Mon répertoire est défini avec 775 paramètres avec la propriété comme moi: www-data. (Mon nom d'utilisateur est remplacé par "moi" pour des raisons d'intimité).
Ma question est double: 1) Est-ce que je fais mal? Si oui, comment devrais-je améliorer le code? 2) Existe-t-il un moyen plus sain de détecter les erreurs dans l'exécution du système?
Après avoir programmé en perl pendant un moment, php se sent comme une douleur dans le cul.
OS: édition serveur Ubuntu
Pour des fins de test: Avez-vous obtenir une sortie avec 'passthru ('perl script.pl 2> &1');' – VolkerK
passthru() fait tout comme prévu Que se passe ??? –
Lire:. Http://php.net/manual/fr/function.passthru.php –