Maison >développement back-end >tutoriel php >Pourquoi ma fonction PHP exec() n'exécute-t-elle pas les scripts Python et comment puis-je y remédier ?

Pourquoi ma fonction PHP exec() n'exécute-t-elle pas les scripts Python et comment puis-je y remédier ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-28 12:07:10296parcourir

Why Doesn't My PHP exec() Function Run Python Scripts, and How Can I Fix It?

Exécution de scripts Python à partir de PHP

Problème :

Lors de la tentative d'exécution de scripts Python à partir de PHP à l'aide de exec() commande, PHP ne parvient à produire aucune sortie, malgré un rapport d'erreurs et une exécution appropriés autorisations.

Cause fondamentale :

Le problème survient lorsque le compte du serveur Web, tel que « apache » ou « www-data », ne dispose pas des autorisations nécessaires pour accéder et exécutez le fichier Python. Par défaut, les comptes du serveur Web fonctionnent souvent avec des privilèges limités.

Résolution :

Pour résoudre ce problème, il est essentiel de s'assurer que le compte du serveur Web dispose des autorisations appropriées pour exécuter le script Python. Ceci peut être réalisé en :

  • Connexion en tant qu'utilisateur du serveur Web : Utilisez la commande su - pour assumer l'identité du serveur Web.
  • Modification des autorisations de fichiers : Accordez les autorisations nécessaires au script Python à l'aide de la commande chmod. Par exemple : chmod u x /srv/http/assets/py/switch.py

Fonction recommandée :

Au lieu d'utiliser exec(), il est préférable d'utiliser la fonction shell_exec() en PHP pour exécuter des commandes via le shell. Cette fonction renvoie la sortie complète générée par la commande exécutée ou NULL en cas d'erreurs ou d'absence de sortie.

Exemple :

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

Considération essentielle :

Pour garantir la bonne exécution du script Python, incluez la ligne suivante comme première ligne du script :

#!/usr/bin/python

Cette ligne spécifie l'interpréteur Python à utiliser, garantissant la compatibilité avec les différentes installations Python sur le système. De plus, le script Python doit disposer des autorisations appropriées et toutes les commandes ou fichiers système nécessaires doivent être accessibles au compte du serveur Web.

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