Bonjour,

Je travail avec CakePHP pour développer une petite application.
Je possède divers sites internet et il m'arrive souvent de les basculer en maintenance, production...etc.
Je passe par le SSH pour exécuter ce script Shell et y faire les actions que j'ai besoin.

Ma petite application contient un menu à gauche avec la liste des sites, au centre, le statut du site (En maintenance ou en ligne), en dessous, un apperçu du site (iframe) et deux boutons pour passer en maintenance ou en production.

J'aimerais savoir comment exécuter ce script Shell via PHP et CakePHP et comment récupérer le retour après l’exécution pour savoir si sa s'est bien déroulé.

Merci de votre aide ;)

8 réponses


Pewel-OutOfNutella
Réponse acceptée

Salut,

Alors, en bref, tu as trois entrées/sorties sur un programme / commande etc

Elles sont :
-une sortie standard (1)
-une sortie d'erreur (2)
-une entrée standard (3)

Par défaut, l'entrée standard est le clavier, la sortie standard et la sortie d'erreur sont l'écran.

Pour rediriger la sortie vers un fichier, c'est avec ">", comme ceci :

ls -l > foo

Pour rediriger l'entrée, c'est avec "<", comme ceci (la commande lira le ficher au lieu du clavier) :

less < foo

Si tu veux rediriger la sortie standard et la sortie d'erreur, il faut par exemple utiliser :

2>&1

Avec ça tu peux exécuter ton script, rediriger les sorties que tu veux dans un fichier, et lire le résultat de ce fichier quand tu le souhaite.

shell_exec() ne marche pas ?

DexX
Auteur

Ah ben si je peux utiliser cela.
Je savais pas si avec CakePHP, il y avait une autre méthode (En relation avec la console Shell).

Et avec cette fonction, est-il possible de récupérer ce qui suit l’exécution du script Shell ? Un genre de log ?

DexX
Auteur

?

Bonsoir,

rien ne t'empêche de rediriger la sortie standard du script vers un fichier. Il y aura tout dedans, à toi de faire ce que tu en veux après

bien cordialement

antho

sortie standard ou d'erreur d'ailleurs , tu peux rediriger les 2

DexX
Auteur

Et comment dois-je procéder ? Vous entendez quoi par sortie standard du script ?
Car j'aimerais récupérer ce qu'il y a dans la console linux une fois avoir exécuter mon shell.

DexX
Auteur

Parfait ! Merci :)
Il me reste à régler des soucis de permissions au niveau des fichiers et apache.