En ce moment je lance un script Python de PHP en utilisant exec() car je dois passer des variables dynamiques du site web/MySQL à la ligne de commande. Cependant, je voudrais améliorer à la fois la rapidité et la sécurité de cette opération donc j'ai pensé à utiliser WSGI. Je pensais qu'il pourrait être possible d'intégrer le script Python dans un fichier WSGI, qui utiliserait les variables passées directement (ou indirectement) depuis PHP ... mais comment faire? Je n'ai jamais utilisé WSGI donc je ne sais même pas si c'est une question stupide ou pas :)Comment éviter PHP exec() en utilisant WSGI pour exécuter un script Python?
Répondre
Tout d'abord, pouvez-vous tout faire en Python ou PHP? L'utilisation de plusieurs langues est généralement considérée comme un anti-pattern. Cela ne veut pas dire que c'est toujours une mauvaise idée, mais vous devriez vous demander pourquoi, d'abord, et seulement si vous êtes convaincu que c'est une bonne idée d'aller de l'avant.
En ce qui concerne les détails de ce que vous voulez faire, il y a quelques options:
Si vous utilisez Apache, vous pouvez utiliser la fonction
virtual()
d'émettre une nouvelle requête par Apache.Cela suppose que vous utilisez mod_php et mod_wsgi. Fondamentalement, vous souhaitez construire une chaîne de requête pour les variables que vous souhaitez passer, et l'appeler comme:
virtual('path/to/python.py?'.$query);
Écrivez votre propre passerelle WSGI PHP.
Basiquement, codez la spécification WSGI dans une bibliothèque et appelez-la explicitement depuis PHP.
Stick à l'appel de
exec()
(qui sera probablement la meilleure option pour l'instant).
La chose que vous devez prendre en compte est qu'il y a un surcoût inhérent à la conversion, y compris entre les langues. Tu ne t'en sortiras jamais, c'est juste la nature de la bête. Donc, à la place, je suggère de garder toute la demande dans un seul environnement, et de la traiter dans son intégralité ...
Malheureusement, je ne peux pas abandonner l'une ou l'autre langue car j'utilise des librairies Python qui ne sont pas disponibles sur PHP ... et réécrire tout le PHP en Python ... Je ne suis pas sûr que ça en vaille la peine. J'espérais un raccourci en utilisant WSGI juste pour réduire cet overhead. – Jon
Merci beaucoup pour votre réponse! – Jon
- 1. Comment faire un script python wsgi retourner à php?
- 2. Exécuter le programme Python en utilisant PHP
- 3. Comment créer un script pour exécuter plusieurs commandes "exec" séquentiellement?
- 4. php ne peut pas exécuter un script perl via exec
- 5. en utilisant le script wsgi pour appeler exe
- 6. PHP: Exécuter exec en tant qu'utilisateur spécifique
- 7. Comment exécuter un script en python
- 8. Comment exécuter un script php en utilisant cron
- 9. Comment j'intègre un script python en PHP?
- 10. Comment arrêter ubuntu en utilisant exec (php)
- 11. Meilleur (ou approprié) serveur WSGI pour ce script Python? - Python
- 12. Exécuter un PHP "exec()" en arrière-plan sur Windows?
- 13. Comment utiliser php exec ou shee_exec pour exécuter un script que j'écrit
- 14. Comment faire pour exécuter un script TCL en Python?
- 15. script d'authentification utilisateur pour exécuter le programme en utilisant python
- 16. Exécuter un script shell pour un temps donné en Python
- 17. Exécuter la fonction exec en PHP
- 18. mod_wsgi Script WSGI pour le développement web Python non-frameworked
- 19. Exécuter un script Python à partir de PHP
- 20. des problèmes en utilisant cron pour exécuter un script pymongo
- 21. Comment invoquer un script PHP en utilisant un script shell?
- 22. exécuter une commande de script exec de php
- 23. Exécuter un script PHP à intervalles réguliers en utilisant CRON
- 24. Programmation PHP efficace en utilisant exec
- 25. Script Bash pour exécuter le script php
- 26. Python - exécuter un script externe
- 27. Raspberry Pi - exécuter un script python par le serveur Apache
- 28. Comment faire pour exécuter une fonction PHP de fond avec une variable POST en utilisant exec()?
- 29. PHP Exec() et l'évolutivité des scripts Python
- 30. comment exécuter un script Python avec activeresource?
Avez-vous accès à Apache config (ou à tout autre serveur web que vous utilisez)? – MeanEYE
Oui, j'ai Apache sur mon propre serveur dédié. – Jon