Exécuter des commandes shell par un script PHP

I. Présentation

Avec la fonction PHP "shell_exec", il est possible d'exécuter des commandes sur un serveur linux à travers un script PHP. Cela donne par exemple la possibilité de gérer son serveur par une interface web.

II. Utilisation

A. Exemple d'utilisation

vim PhpScript.php
<?php
shell_exec ('mkdir dossier02');
?>

B.Exécution du script en mode console

Pour exécuter notre script et voir si il fonctionne, on doit l'exécuter avec la commande "php <nom du fichier>" :

php PhpScript.php

Il est aussi intéressant sur une page web de récupérer et d'afficher le résultat d'une commande exécutée par le script PHP :

<?php
$Commande = shell_exec ('ls -al');
echo "$Commande";
?>
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 523.Voir tous les posts

3 thoughts on “Exécuter des commandes shell par un script PHP

  • Une p’tite astuce pour lancer des applis qui nécessitent les privilegent root via cette commande ? Bonne nuit

    Répondre
    • Je pense que c’est super dangereux de donner la possibilité à une page web d’exécuter des programmes en root ! Cependant je pense que tu peux te renseigner sur le setuid qui, il me semble, permet de permettre ce genre de configuration.

      Si tu souhaites que les applis s’exécutent en www-data alors qu’elles doivent normalement être en root tu peux également voir pour installer/utiliser sudo et le fichier sudoers sous Debian.

      Répondre
  • oui mais toutes les commandes linux ne sont pas accessibles avec cette fonction et quand on fais « cd monFichier » et qu’on lance la commande « ls » derrière, on est pas dans « monFichier » mais dans la racine en gros chaque commande est indépendante et ne tiens pas compte des précédentes du coup c’est compliqué de faire une interface graphique pour gérer son serveur avec cette fonction.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.