Maison > développement back-end > tutoriel php > Comment puis-je exécuter avec succès un script Python à partir de PHP ?

Comment puis-je exécuter avec succès un script Python à partir de PHP ?

Susan Sarandon
Libérer: 2024-12-24 04:00:09
original
397 Les gens l'ont consulté

How Can I Successfully Run a Python Script from PHP?

Exécuter un script Python à partir de PHP

PHP fournit plusieurs fonctions pour exécuter des commandes externes, notamment exec, shell_exec et system. Cependant, vous pouvez rencontrer des problèmes lorsque vous tentez d'exécuter un script Python à l'aide de ces fonctions.

Dépannage :

Pour résoudre ce problème, vous avez essayé différentes solutions, notamment :

  • Utiliser différents interpréteurs Python
  • Utiliser à la fois l'absolu et le relatif paths
  • Test avec d'autres commandes (par exemple, echo)

Cependant, vous avez remarqué que PHP ne produit toujours aucune sortie.

Solution :

Le problème ne vient peut-être pas de PHP mais des autorisations. Les serveurs Web fonctionnent généralement avec des privilèges utilisateur limités, ce qui peut restreindre leur capacité à exécuter certaines commandes ou à accéder à des fichiers.

  1. Connectez-vous en tant qu'utilisateur du serveur Web :

Connectez-vous à votre serveur en tant qu'utilisateur sous lequel votre serveur Web s'exécute (par exemple, www-data).

  1. Testez la commande :

À l'aide de la commande que vous essayez d'exécuter en PHP, essayez de l'exécuter manuellement à partir du terminal en tant qu'utilisateur du serveur Web. Par exemple :

/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2
Copier après la connexion

Si la commande fonctionne manuellement, elle confirme que le problème vient des autorisations.

  1. Vérifier les autorisations :

Assurez-vous que le script PHP et le script Python disposent des autorisations appropriées. PHP doit avoir des autorisations d'exécution pour le script PHP et le script Python doit avoir des autorisations d'exécution pour l'utilisateur du serveur Web.

  1. Utilisez shell_exec :

La fonction shell_exec de PHP est généralement plus fiable pour exécuter des commandes externes que exec ou system. Il renvoie la sortie complète de la commande exécutée. Utilisez le code suivant :

$command = escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($command);
echo $output;
Copier après la connexion
  1. Assurez-vous que la ligne Shebang du fichier Python :

Vérifiez que la première ligne de votre fichier Python comprend les éléments suivants ligne shebang :

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

Cette ligne spécifie l'interpréteur Python à utiliser.

  1. Rendre un fichier Python exécutable :

Si nécessaire, rendez votre fichier Python exécutable sur les plateformes de type UNIX en utilisant :

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

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