J'essaie d'exécuter /path/to/script.pl
en PHP; le script, entre autres, envoie un e-mail une fois l'exécution terminée. Lorsque je tentePHP exec() fonctionne étrangement
exec("/path/to/script.pl");
Rien ne se passe. D'autres points de données pertinentes:
print exec("whoami");
/path/to/script.pl
sudo -u apache /path/to/script.pl
Le premier, exécutez en PHP, estampes apache
; la seconde, lancée dans le shell, fonctionne comme prévu (envoie l'email); le troisième, exécuté dans le shell, fonctionne également comme prévu (envoie l'email). De cela il semble que exec
fonctionne correctement pour certaines commandes, et que le script fonctionne et fonctionne pour l'utilisateur httpd
(apache
). Le script lui-même ne gère pas les E/S de fichiers, mais il accède à une base de données MySQL et utilise Net::SMTP::TLS
ainsi que LWP::Simple
. Des idées sur ce qui pourrait mal tourner?
Votre script doit-il être exécuté par un utilisateur apache? –
Oui, c'est 'chmod 755'; Je pensais aussi que 'sudo -u apache/path/to/script.pl' revérifierait que --- c'est faux? – kyle
Bizarre ... essayez de chown ce fichier à l'utilisateur Apache ... J'utilise les commandes popen et pclose et ça marche bien. Avez-vous essayé de vous vérifier php log pour l'erreur? N'oubliez pas d'activer la journalisation des erreurs php. –