Maison >développement back-end >Tutoriel Python >Pourquoi mon code PHP n'exécute-t-il pas les scripts Python et comment puis-je y remédier à l'aide de shell_exec ?

Pourquoi mon code PHP n'exécute-t-il pas les scripts Python et comment puis-je y remédier à l'aide de shell_exec ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-08 09:43:14883parcourir

Why Doesn't My PHP Code Execute Python Scripts and How Can I Fix It Using shell_exec?

Exécution de scripts Python à partir de PHP

Lorsque vous tentez d'exécuter des scripts Python à partir de PHP à l'aide de commandes telles que exec, PHP peut ne produire aucune sortie malgré un rapport d'erreurs et des paramètres d'affichage appropriés. Cela peut être résolu en utilisant la fonction shell_exec.

Fonction shell_exec

shell_exec exécute une commande via le shell et renvoie sa sortie complète sous forme de chaîne. Voici un exemple de son utilisation :

$command = escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($command);
echo $output;

Configuration du script Python

Assurez-vous que votre script Python a la configuration suivante :

  • La première ligne du script contient le #! suivi du chemin de l'interpréteur Python, par exemple #!/usr/bin/env python.
  • Le script dispose des privilèges appropriés pour que l'utilisateur Web (par exemple, www-data pour Apache) puisse l'exécuter.

Considérations spécifiques à Unix

Sur les plateformes Unix, le script Python devra peut-être être rendu exécutable à l'aide de chmod x monscript.py. De plus, les commandes du script Python doivent disposer des privilèges appropriés.

Autorisations de l'utilisateur Web

N'oubliez pas que PHP s'exécute en tant qu'utilisateur Web, généralement www-data ou apache. Par conséquent, assurez-vous que l'utilisateur Web dispose des autorisations d'accès aux fichiers et répertoires référencés dans la commande shell_exec.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn