Maison > développement back-end > tutoriel php > Pourquoi mon code PHP n'exécute-t-il pas mon script Python et comment puis-je y remédier ?

Pourquoi mon code PHP n'exécute-t-il pas mon script Python et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2024-12-17 16:50:13
original
120 Les gens l'ont consulté

Why Doesn't My PHP Code Execute My Python Script, and How Can I Fix It?

Exécuter un script Python de manière transparente à partir de PHP

Pour exécuter un script Python à l'aide de PHP, plusieurs méthodes sont disponibles, notamment exec, shell_exec et system . Cependant, lors de l'utilisation de exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py ​​arg1 arg2') en PHP, aucune sortie ne peut être générée malgré la définition du rapport d'erreurs sur E_ALL et l'activation de display_errors.

Pour résoudre ce problème, il est crucial de vérifier que l'utilisateur du serveur Web dispose des autorisations nécessaires pour accéder et exécuter le script Python et ses commandes associées. Plus précisément, le fichier Python doit disposer des autorisations d'exécution et toutes les commandes internes doivent également être configurées avec les autorisations appropriées.

Résoudre le problème avec shell_exec

Ubuntu Server 10.04 le prouve être un environnement approprié pour cette solution. En utilisant la fonction shell_exec de PHP, la commande peut être exécutée et la sortie renvoyée sous forme de chaîne. L'extrait de code PHP suivant illustre cette approche :

$command = escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($command);
echo $output;
Copier après la connexion

Importance de la ligne Shebang dans le script Python

Le script Python (test.py) doit commencer par le ligne suivante pour garantir que le bon interpréteur est invoqué :

#!/usr/bin/env python
Copier après la connexion

Cette ligne demande au système d'utiliser l'interpréteur Python spécifié dans la variable d'environnement $PATH, garantissant la compatibilité avec les différentes versions de Python installées.

Pour rendre le script test.py exécutable sur les plates-formes Unix, exécutez la commande suivante :

chmod +x myscript.py
Copier après la connexion

Droits d'exécution pour les fichiers et les commandes

En plus de définir des autorisations d'exécution pour le script Python, il est tout aussi important d'accorder au Web droits d'exécution de l'utilisateur (généralement www-data/apache) sur le fichier et ses commandes internes. Dans le cas contraire, le script pourrait ne pas s'exécuter correctement.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal