Lorsque vous tentez d'exécuter un script Python depuis PHP à l'aide de commandes exec, shell_exec ou système, il est essentiel de prendre en compte le contexte de sécurité de votre serveur Web. Dans de nombreux cas, le serveur Web peut ne pas disposer des autorisations suffisantes pour exécuter le script.
Pour diagnostiquer et résoudre les problèmes liés aux autorisations, il est utile d'essayer d'exécuter l'extrait de code suivant :
if (exec('echo TEST') == 'TEST') { echo 'exec works!'; }
Si ce code fonctionne, cela indique que la fonction exec de PHP fonctionne correctement. Cependant, si PHP ne parvient pas à produire une sortie, il est probable que l'utilisateur du serveur Web ne dispose pas des autorisations adéquates.
Une bonne alternative à l'utilisation de exec est la fonction shell_exec en PHP. Shell_exec renvoie la sortie complète de la commande exécutée ou NULL si une erreur se produit ou si aucune sortie n'est produite. Exemple d'utilisation :
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Pour vous assurer que le script Python s'exécute correctement, vérifiez que la première ligne du script contient le shebang suivant :
#!/usr/bin/env python
Ce shebang spécifie l'interpréteur à utiliser et est crucial pour garantir que la version correcte de Python est utilisée.
Pour que le script soit reconnu comme exécutable, assurez-vous qu'il dispose des autorisations appropriées. Sur les plateformes de type UNIX, utilisez la commande suivante :
chmod +x myscript.py
De plus, le script Python et toutes les commandes appelées dans celui-ci doivent disposer des autorisations nécessaires pour s'exécuter.
En tenant compte des autorisations des utilisateurs et en utilisant shell_exec, vous pouvez exécuter efficacement des scripts Python à partir de PHP, garantissant une intégration sécurisée et fonctionnelle entre les deux langages.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!