Forum eedomus
http://forum.eedomus.fr/

Demande d'aide script Php
http://forum.eedomus.fr/viewtopic.php?f=50&t=5393
Page 1 sur 2  Suivant »
Auteur:  galaksy2001 [ 03 Avr 2017 17:35 ]
Sujet du message:  Demande d'aide script Php

Bonjour tout le monde,

J' héberge un serveur minecraft sur mon Synology. Pour le lancer, je dois exécuter une commande via SSH. Je souhaiterai le faire avec l'eedomus.

J'ai donc récupéré un script PHP qui me permet d'éteindre mon syno via SSH et je l'ai modifié. Bien sur, ça ne fonctionne pas !

Je pense que cela est du au fait que je ne lance pas qu'une seule commande comme le fichier original, mais plusieurs commandes les unes après les autres (remonter dans le répertoire parent, accèder au dossier minecraft, puis lancer le serveur). La syntaxe ne doit pas être la bonne ...

Je vous joins le fichier :

Code : Tout sélectionner
<?php

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include('phpseclib/Net/SSH2.php');

$ssh = new Net_SSH2('XXX.XXX.X.XX');
if (!$ssh->login('XXX', 'XXXXX')) {
    exit('Login Failed');
}

echo $ssh->read('~ #');      // ce que vous voyez à l'invite SSH
$ssh->write("cd ..\n");      // remonte dans le répertoire parent, attention à ne pas oublier le \n qui simule la touche 'Entrée'
$ssh->write("cd volume2/minecraft\n");      // accès au répertoire minecraft
$ssh->write("nohup jre1.8.0_101/bin/java -Xmx1024m -jar minecraft_server.jar net.minecraft.server.MinecraftServer nogui\n");  // exécution de la commande pour lancer le serveur
echo $ssh->read('~ #');


?>


Si une âme charitable veux bien se pencher sur le sujet, merci par avance ;)
Auteur:  galaksy2001 [ 08 Avr 2017 21:54 ]
Sujet du message:  Re: Demande d'aide script Php

:(
Auteur:  blues [ 09 Avr 2017 02:19 ]
Sujet du message:  Re: Demande d'aide script Php

Pourquoi 2 commandes "cd" ?
Il faudrait essayer de lancer tout en une commande :
$ssh->write("cd ../volume/minecraft;nohup jre1.8.0_101....nogui\n");
Il faut aussi être sûr que le classpath est bien défini au moment de la commande je pense.
Si cela ne fonctionne toujours pas, essayer d'ajouter en début de commande "export CLASSPATH=.:<chemin jar minecraft>"
Auteur:  galaksy2001 [ 09 Avr 2017 20:22 ]
Sujet du message:  Re: Demande d'aide script Php

Merci pour ta réponse blues ;)

La première commande "cd .." me permet de remonter dans le répertoire parent pour ensuite accéder au dossier minecraft.

Merci pour les ";" : je ne savais pas comment tout lancer en une seule commande. ;)

J'ai fait le test : même résultat, ça mouline ... Je verrai demain l'export classpath, aujourd'hui j'ai pas les yeux en face des trous :D
Auteur:  Madoma73 [ 11 Avr 2017 08:37 ]
Sujet du message:  Re: Demande d'aide script Php

Quand tu lances ta commande en live sur le syno, tu es en root ou en admin ?
tu as quelle version de DSM ?
Auteur:  galaksy2001 [ 14 Avr 2017 17:06 ]
Sujet du message:  Re: Demande d'aide script Php

Je suis en root, version DSM 5.2-5967 donc pas de limitation sur le compte root comme sur DSM 6.
Ma commande fonctionne bien via putty en SSH.
En tout cas merci les gars de me filer un coup de main ! ;)

Je vois ce soir cette histoire de l'export classpath ... et je vous tiens au jus. :D
Auteur:  galaksy2001 [ 15 Avr 2017 18:35 ]
Sujet du message:  Re: Demande d'aide script Php

Bon...ça mouline toujours...

@ blues : la syntaxe est bien la bonne : "export CLASSPATH=.:<chemin jar minecraft>" ?
Auteur:  influman [ 16 Avr 2017 16:01 ]
Sujet du message:  Re: Demande d'aide script Php

galaksy2001 a écrit:Bon...ça mouline toujours...

@ blues : la syntaxe est bien la bonne : "export CLASSPATH=.:<chemin jar minecraft>" ?


plutôt que de faire un "cd..", pourquoi ne pas déjà donner le chemin absolu depuis la racine ?
Auteur:  galaksy2001 [ 17 Avr 2017 14:30 ]
Sujet du message:  Re: Demande d'aide script Php

Parce que quand je me connecte avec mon compte root, je n'arrive pas directement à la racine ;)
Auteur:  influman [ 18 Avr 2017 15:07 ]
Sujet du message:  Re: Demande d'aide script Php

galaksy2001 a écrit:Parce que quand je me connecte avec mon compte root, je n'arrive pas directement à la racine ;)


si tu as les droits pour changer de répertoire avec des "CD..", tu peux donc donner le chemin absolu depuis la racine : "/.../../../volume2/.."
ou alors j'ai pas compris quelque chose.

Sinon tu crées un lien et/ou un alias pour y accéder
Auteur:  galaksy2001 [ 18 Avr 2017 21:12 ]
Sujet du message:  Re: Demande d'aide script Php

Ben parce que c'est toute la différence entre toi et moi :
Toi tu sais de quoi tu causes et moi je cherche à comprendre le php en bidouillant des scripts pré-existants ! :D
J'ai bien conscience que ma méthode n'est pas la meilleure et qu'un jour ou l'autre il va falloir que je trouve le temps de m'y mettre.
En attendant merci pour tes précieux conseils ;)

Si j'ai bien compris "/.../" permet d'ouvrir le chemin absolu depuis la racine

J'ai donc lancé la commande suivante :
Code : Tout sélectionner
"/.../volume2/minecraft/nohup jre1.8.0_101/bin/java -Xmx1024m -jar minecraft_server.jar net.minecraft.server.MinecraftServer nogui\n"


Ça mouline toujours ...

Edith : ensuite, un alias à créer, je vois bien de quoi tu causes mais je ne sais pas comment le faire. Je ne ferai pas le boulet en te demandant de l'aide aussi à ce sujet : c'est à moi de m'y mettre !
Auteur:  blues [ 18 Avr 2017 22:24 ]
Sujet du message:  Re: Demande d'aide script Php

"Ça mouline" n'est pas très causant... Tu peux voir au niveau du serveur que quelque chose "mouline" ? Le programme java ne génère aucun fichier de log ? Au pire envoyer les sorties standards vers un fichier : "... nogui >/var/tmp/monlog 2>&1\n"
Cela devrait générer le visuel de l'appel de la commande telle que tu l'aurait à l'écran en la lançant directement mais en l'écrivant dans un fichier qu'il faudra consulter ensuite... Il y aura peut être l'explication de ce qui cloche... depuis le début c'est plus un problème de connaissances linux que php.
Auteur:  influman [ 18 Avr 2017 23:23 ]
Sujet du message:  Re: Demande d'aide script Php

lol non, quand je mettais ../.. c'était pour que tu remplaces avec les dossiers complets depuis la racine.

connecte toi via putty, mets toi dans le répertoire que tu veux de minecraft et tape "pwd", tu auras le chemin absolu complet normalement depuis la racine /
Auteur:  galaksy2001 [ 19 Avr 2017 19:51 ]
Sujet du message:  Re: Demande d'aide script Php

@ blues : quand je dis "ça mouline" c'est vrai que c'est pas très clair !!! Je veux dire que quand je lance le fichier php via un navigateur, celui-ci ne me renvoie rien, même pas un message d'erreur, j'ai droit sur chrome au "chti cercle qui tourne en boucle" ;)

@ influman : ok :lol: j'ai rentré le chemin absolu et ben tu sais quoi ... ça mouline !!!

Je vais arrêter de vous faire perdre votre temps. De toutes façons, minecraft sur mon serveur me bouffe 85% de mon CPU ! Donc je laisse tomber cette solution.

Merci beaucoup les gars :thumbup: :thumbup:
Auteur:  influman [ 19 Avr 2017 23:38 ]
Sujet du message:  Re: Demande d'aide script Php

essaye juste ça comme script :

Code : Tout sélectionner
<?php
function ssh($host, $login, $mdp, $command)
{
    if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
    if(!($con = ssh2_connect($host, 22))){
        echo "échec connexion\n";
    } else {
        if(!ssh2_auth_password($con, $login, $mdp)) {
            echo "échec authentification\n";
        } else {
            // execute a command
            if (!($stream = ssh2_exec($con, $command ))) {
                echo "échec de l'exécution de la commande\n";
            } else {
                // collect returning data from command
                stream_set_blocking($stream, true);
                $data = "";
                while ($buf = fread($stream,4096)) {
                    $data .= $buf;
                }
                fclose($stream);
                return $data;
            }
        }
    }
}

$command = 'tonchemin/nohup jre1.8.0_101/bin/java -Xmx1024m -jar minecraft_server.jar net.minecraft.server.MinecraftServer nogui'
$ret = ssh('192.168.0.tonIP', 'root', 'password', $command);
echo '<pre>' . $ret . '</pre>';
?>
Auteur:  galaksy2001 [ 21 Avr 2017 10:28 ]
Sujet du message:  Re: Demande d'aide script Php

Merci influman ;)

J'ai essayé ton script : il me retourne un syntax error à la ligne 29.

Code : Tout sélectionner
Parse error: syntax error, unexpected '$ret' (T_VARIABLE) in /volume2/web/minecrafton.php on line 29


J'ai bien précisé l'adresse IP, le mdp à la ligne 29 et la commande à la ligne 28. Je ne vois pas où se trouve l'erreur de syntaxe. J'ai tenté en rajoutant le \n à la fin de la commande : idem .
Auteur:  rover820i [ 21 Avr 2017 13:44 ]
Sujet du message:  Re: Demande d'aide script Php

Il manque un ; à la fin de la ligne 28 :
Code : Tout sélectionner
MinecraftServer nogui';
Auteur:  influman [ 21 Avr 2017 14:18 ]
Sujet du message:  Re: Demande d'aide script Php

et si tu dis encore que ça mouline, j'arrête ce sujet... :D
Auteur:  galaksy2001 [ 22 Avr 2017 10:16 ]
Sujet du message:  Re: Demande d'aide script Php

Merci influman ! Eh ben tu sais quoi ? Ca ne mouline plus ! Par contre j'ai un :

Code : Tout sélectionner
function ssh2_connect doesn't exist


Est-ce que, comme dans le script précédent, je dois pas lui indiquer la librairie, du genre :

Code : Tout sélectionner
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

include('phpseclib/Net/SSH2.php');


$ssh = new Net_SSH2('192.168.0.23');
Auteur:  rover820i [ 22 Avr 2017 14:08 ]
Sujet du message:  Re: Demande d'aide script Php

galaksy2001 a écrit:Merci influman !

De rien aussi, ça fait plaisir d'être transparent quand on aide :mrgreen:
Page 1 sur 2 Le fuseau horaire est UTC+1 heure