Page 24
Parcours de dossiers et exécution des programmes externes
Parcours de dossiers et exécution des commandes en PHP
Gestion et parcours de dossiers
La gestion de dossiers par le biais d'opérations comme la création, le parcours ou le changement de droits est souvent une action manuelle menée par l'administrateur système directement sur le système hôte ou par le développeur à travers un client FTP sur le dossier d'hébergement du projet Web. Cependant si vous disposez d'un grand projet vivant où vous aurez fréquemment besoin de créer, renommer ou supprimer des dossiers (ou même des fichiers), comme par exemple sur un site de téléchargement où vous associez un dossier principal à chaque utilisateur inscrit, alors il est inconcevable de faire ces opérations là manuellement. La solution consiste alors à automatiser ces actions à travers des scripts PHP.
En effet, PHP dispose d'une collection de fonctions qui permettent de gérer les dossiers à a volée. On peut donc créer des dossiers et des sous-dossiers, leur affecter des privillèges (ou droits d'utilisateurs), les supprimer, les parcourir, etc...
Exécution de commandes et programmes externes avec PHP
Là encore PHP révèle toute sa puissance. En effet, PHP dispose d'une fonction très puissance nommée exec() (et aussi la fonction passthru() qui est moins utilisée). Avec cette fonction on peut faire appel à un programme externe via la ligne de commande.
Comme vous le savez déjà, la ligne de commande est l'outil fidèle d'un administrateur système, car elle lui permet de mener des opérations parfois très complexes par une seule commande. Alors, imaginez que cet outil est pris en charge par le langage PHP, ce qui veut dire que vous pouvez exécuter toutes vos commandes (comme ls, mkdir, chown, make...) à travers vos scripts PHP de manière automatisée.
Il faut noter que PHP s'exécute avec des droits détérminés par l'administrateur du serveur, ce qui veut dire que certaines commandes qui requièrent des privillèges élevés peuvent ne pas s'exécuter correctement via la fonction exec(). Cependant, on peut faire élever les droits du deamon PHP pour qu'il puisse exécuter des commandes critiques, mais il ne faut jamais faire cela, car vous pouvez mettre en péril tout votre système si votre code présente des failles de sécurité.
Et en pratique ça donne quoi?
Dans la vidéo qui suit, j'ai résumé les deux points traités dans cette leçon, à savoir le gestion et parcours de dossiers et l'execution des commandes externes: