IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Execution d'une commande ssh en php


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 9
    Points
    9
    Par défaut Execution d'une commande ssh en php
    Bonjour,

    Je souhaiterai pouvoir démarrer, arrêter ou redémarrer un serveur jeu via php.
    Les commandes se font via ssh, avec putty aucun problème, mais je n'arrive pas à comprendre le fonctionnement via php. Pourtant utile pour que l'admin ou
    moi même puissions redémarrer le serveur via le site sans se prendre la tête avec putty ^^ en cliquant simplement sur un bouton.

    J'ai tenté shell_exec en vain.

    Je vous serais reconnaissant si vous arriviez à m'aider.

    Le serveur est sous linux et sert à faire tourner un serveur GTA.

  2. #2
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Juillet 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 102
    Points : 153
    Points
    153
    Par défaut
    Bonjour,
    En fonction de ton hébergeur il est probable que le safe mode de php soit activé, ce qui empêche l'execution d'un shell_exec en php.
    As tu essayé une commande simple avec shell_exec ? (ls -l ?).

  3. #3
    Futur Membre du Club
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    Je viens de faire le test, et ça me retourne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    string(466) "total 36 -rw-r--r-- 1 root root 305 Oct 8 13:39 actionServer.php -rw-r--r-- 1 root root 341 Oct 8 10:08 compte.php drwxr-xr-x 3 root root 4096 Oct 8 14:06 css drwxr-xr-x 2 root root 4096 Oct 8 10:34 includes -rw-r--r-- 1 root root 402 Oct 8 10:33 index.php drwxr-xr-x 2 root root 4096 Oct 8 10:58 js -rw-r--r-- 1 root root 1325 Oct 8 14:59 membres.php -rw-r--r-- 1 root root 1839 Oct 8 16:08 persos.php -rw-r--r-- 1 root root 1122 Oct 9 11:02 server.php
    C'est bon signe je pense vu qu'il arrive à me lister mes fichiers et dossiers ?! Non ?

    Edit : je souhaiterais exécuter cette commande que je fais habituellement dans putty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /home/lad/run.sh +exec /home/lad/server-data/server.cfg

  4. #4
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Juillet 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 102
    Points : 153
    Points
    153
    Par défaut
    Oui en effet c'est bon signe.

    Alors le problème vient surement des droit d'execution sur le script run.sh
    Il faut t'assurer que l'utilisateur (apache / www-data ou autre en fonction de la config de ton serveur web) ait les droits necéssaires pour executer run.sh

    Pour tester facilement fait donc un chmod 777 /home/lad/run.sh (et peut être aussi sur /home/lad/server-data/server.cfg)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    J'ai passé les droits des fichiers en 777 mais ça fonctionne toujours pas.

    Je dois pas avoir le bon utilisateur. J'ai essayé www-data et root (par curiosité), ça ne fonctionne pas.
    J'ai bien était voir dans le fichier config d'apache mais il est pas indiqué, c'est une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    User ${APACHE_RUN_USER}
    Edit : J'ai était voir dans envvars, l'utilisateur est bien www-data pourtant

  6. #6
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Juillet 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 102
    Points : 153
    Points
    153
    Par défaut
    Le path vers le fichier appelé par shell_exec est bon ?
    Qu-est ce que ça retourne ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    C'est le même que celui utilisé sur putty.

    Ca ne me retourne rien, je test voir si ça fonctionne mais ça reste sur false, alors que le petit test lui passe bien sur true et j'ai le résultat avec la liste des fichiers.

    Après c'est la première fois que je m'intéresse à cette commande.

  8. #8
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Juillet 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 102
    Points : 153
    Points
    153
    Par défaut
    Je pense que c'est bien soit un problème de droit ou de path...
    Essaye de déplacer run.sh et serverconfig.cfg dans un dossier de ton site (modifier probablement run.sh en conséquence) et de lui setter les bon droits.
    Ya pas de raisons que ça fonctionne pas

  9. #9
    Futur Membre du Club
    Homme Profil pro
    null
    Inscrit en
    Août 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Août 2013
    Messages : 22
    Points : 9
    Points
    9
    Par défaut
    J'ai écrit la commande de la même façon que je le ferais dans putty. Même en déplaçant les fichiers ça ne marche pas.

    Y a t-il une synthaxe particulière pour exécuter via php ?

    Edit : Je te met le code, tu verras mieux ce que j'ai fait

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          $exec = shell_exec('sudo -u www-data bash /home/lad/run.sh +exec /home/lad/server-data/server.cfg');
          echo '<pre>';
          var_dump($exec);
          echo'</pre>';

    Edit 2 : Pour je ne sais quel raison, ça fonctionne maintenant. Peut être un responsable du VPS qui à débloqué certaines choses ... Enfin bref, maintenant faut que je trouve comment le stopper parce que le ctrl+c dans la console ça doit pas fonctionné içi mdr.

    Je passe pas encore le sujet comme résolu vu que j'ai encore des trucs à faire avec cette commande mais merci de ton aide.

Discussions similaires

  1. Executer une commande SSH : Sécurité
    Par Franck0 dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2011, 14h45
  2. [Système] executer une commande externe depuis php
    Par sebgaillard dans le forum Langage
    Réponses: 1
    Dernier message: 09/04/2008, 15h34
  3. [Système]Execution d'une commande shell
    Par n8ken dans le forum API standards et tierces
    Réponses: 24
    Dernier message: 29/03/2007, 04h36
  4. [Système] Execution d'une commande avec php
    Par djspank dans le forum Langage
    Réponses: 1
    Dernier message: 14/03/2007, 08h47
  5. [System][EXEC] Probleme d'execution avec une commande parametrée.
    Par chicorico dans le forum Général Java
    Réponses: 15
    Dernier message: 20/05/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo