SSH PHP

Ce topic a été résolu
Rudelle65

Rudelle65 Le 31 octobre 2016 à 18:55 (Édité le 25 janvier 2019 à 17:52)

Bonjour,

je voudrais créer un système comme les hébergeur du style mtxserv ou il y a un bouton pour démarré le serveur l’arrêter le redémarrer le mettre a jours en ssh je connais les commande a exécuter mes je nais aucun code php pour exécuter un commande ssh par une interface web.

:):):)
Rudelle65

Rudelle65 Le 31 octobre 2016 à 20:09

C'est urgent !!!!
TheFlameflo

TheFlameflo Le 1 novembre 2016 à 01:25

Salut !

Je pense que ceci peut te convenir :
SSH2
Pour faire simple, ça regroupe tout ce que tu as besoin pour exécuter des commandes SHELL avec PHP.
Sur cette page, tu retrouveras plusieurs fonctions plein utiles :
ssh2_connect, ssh2_auth_password et ssh2_exec.

Pour faire simple, tu dois commencer par te connecter au serveur.

Tu utilises donc ssh2_connect, tu renseignes l'host et le port.
Il y a d'autres paramètres, mais je te conseille de te rendre sur la doc pour en savoir plus ! 😀

Après, tu dois t'identifier avec ssh2_auth_password, tu renseignes la variable dans laquelle tu as stocké la connexion, ton username et ton mot de passe.

Finalement, tu exécutes les commandes avec ssh2_exec en renseignant la variable obtenue lors de ta connexion avec ssh2_connect et la commande.

En gros, c'est ça les bases, mais je te conseille d'aller voir la doc, c'est le mieux ! 😉

Bonne chance !
Rudelle65

Rudelle65 Le 1 novembre 2016 à 05:21

Merci TheFlameflo,
j'ai coder un un petit système qui marche très bien j'en est fait deux mes le premier ne fonctionner pas bien du coup j'ai tout recommencer a zéro et voila ce que sa donne une fois fini:
<?php
    $domain = '127.0.0.1';
    $user = 'root';
    $pass = '';
    header('Content-Encoding: none;');
    set_time_limit(0);
    $connection = ssh2_connect($domain, 22);
        if(ssh2_auth_password($connection, $user, $pass)){
                $h = ssh2_exec($connection, 'mas commande ssh');
                $out = ssh2_fetch_stream($h, SSH2_STREAM_STDIO);
                if (ob_get_level() == 0)
                        ob_start();
                while (!feof($out)) {
                        $line = fgets($out);
                        echo $line.'<br />';
                        echo str_pad('', 4096);
                        ob_flush();
                        flush();
                        sleep(1);
                }
                fclose($out);
                ob_end_flush();
        }
?>
  
TheFlameflo

TheFlameflo Le 1 novembre 2016 à 21:11

Super, heureux d'avoir pu aider ! 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte