Impossible d’exécuter le script shell à partir du script web php

J’essaie d’exécuter un script shell à partir d’un script php.

J’ai le contrôle complet de l’environnement (Unix sur Mac), je devrais avoir toutes les permissions, etc. définies correctement.

Le script Web est dans /htdocs/

Le script shell peut être exécuté de n’importe où. Quand je vais dans / htdocs / dans le shell, je peux facilement le lancer comme ceci: $ my_shellscript

.. mais quand mon script php (qui se trouve dans htdocs) essaie de l’appeler:

 shell_exec('my_shellscript'); 

Je n’ai rien.

J’ai prouvé que le script peut être appelé à partir de cet emplacement et j’ai temporairement accordé un access complet pour essayer de le faire fonctionner. Je deviens fou, aidez-moi s’il vous plaît.

Si vous connaissez un autre moyen de déclencher un script shell via le Web, cela irait bien.

Merci d’avance.

Eh bien, j’ai eu quelques semaines le même problème, la solution est de vérifier si la demande a la permission d’exécuter votre script. Vous pouvez également essayer de lancer le script dans php cli.

Comme il s’agit d’un script de shell, il doit être appelé avec le préfixe de chemin. Je suppose que vous devez faire ceci:

 shell_exec('./my_shellscript'); 

Première chose: assurez-vous que php ne fonctionne pas en mode sans échec

Prochaine chose: Essayez de l’exécuter avec la fonction exec () et utilisez le chemin complet (par exemple / var / www / htdocs / my_shellscript)

Essayez de faire

 echo shell_exec('my_shellscript 2>&1'); 

qui capturera la sortie stderr du script et l’imprimera. Si quelque chose échoue dans le script, cette sortie serait perdue si elle n’était pas exécutée de manière interactive.