kostenloser Webspace werbefrei: lima-city


frage zu ssh mit php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    leopold2104

    leopold2104 hat kostenlosen Webspace.

    Hallo liebe leute,

    Ich hab mal wieder ein kleines problem ... Undzwar habe ich ein kleiner webinterface geschrieben mit session system und allen. Das interface funktioniert perfekt Wenn ich mich einlogge komme ich auf die private seite wo ich schon 2 Button erstellt habe, der eine button heißt server starten und der andere server stoppen. Nun möchte ich das wenn man auf den start button drückt Das dass php script sich mit ssh in meinen externen server einloggt und folgende befehle eingibt: Erster befehl: cd /root/teeworlds-server/r00t-test-dm-2 Zweiter befehl: ./start.sh Fertig. Danke für eure hilfe... und bitte passt eure scripts bitte meibem dateipfad an Das währe echt super ;) Danke an alle die mir helfen.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m****r

    leopold2104 schrieb:
    und bitte passt eure scripts bitte meibem dateipfad an Das währe echt super ;)


    Nicht Zielführend, muss aber sein: "Habe Mut dich deines eigenen Verstandes zu benutzen."
    Das Ding hier wird demnächst sowieso aufgrund fehlender Diskussionslage ins Spam-Forum verschoben werden. Schließlich gehts hier nur um "Wer baut mir das schnell? Ich kann das nicht."

    Beitrag zuletzt geändert: 13.2.2013 14:18:10 von midwar
  4. Autor dieses Themas

    leopold2104

    leopold2104 hat kostenlosen Webspace.

    Sorry, ich hatte es mir selbst zusammen gebastelt aber es funktionierte nicht :(
  5. Hallo :wave:

    midwar schrieb:
    Schließlich gehts hier nur um "Wer baut mir das schnell? Ich kann das nicht."


    Warum sollte man sonst in einem Forum nach Hilfe Fragen? Als ob dein Post kein spam wäre.

    Ich habe noch nie SSH über PHP verwendet, aber so schwierig schaut das tatsächlich nicht aus. Wenn ich könnte, würde ich ihm den Codeschnipsel schnell hinschreiben.


    //EDIT: mal alles überarbeitet, so geht's garantiert:
    apt-get update
    apt-get install libssh2
    apt-get install php5-ssh2
    nano /etc/php5/php.ini <- welche php.ini du auch immer verwendest
    -> füge "extension=ssh2.so" ohne die "" ein
    speichern
    /etc/init.d/apache2 restart




    <?php
    $connection = ssh2_connect('host', 22);
    
    if (ssh2_auth_password($connection, 'root', '12345')) {
    echo "connected";
    
    if ($stream = ssh2_exec ($connection, 'touch sshtest.html'))
    {echo "file was created";}
    else {echo "error";}
    
    }
    else {echo "could not connect";}
    ?>


    wenn der code so funktioniert, kannst du folgendes einfügen:
    if ($stream = ssh2_exec($connection, '/root/teeworlds-server/r00t-test-dm-2/start.sh'))
    { echo "Server wurde gestartet"; }
    else {echo "Server konnte nicht gestartet werden.";}


    //EDIT: Hab mal die fehlende runde Klammer ergänzt ;)

    mfg :wave:

    Beitrag zuletzt geändert: 15.2.2013 13:10:46 von voloya
  6. Autor dieses Themas

    leopold2104

    leopold2104 hat kostenlosen Webspace.

    Danke, der code würde theoretisch funktionieren nur ist es so, das
    es nicht so einfach funktioniert das man
    /pfad/zur/datei/script.sh
    Das geht nicht bzw funktioniert nicht
    Wenn man es so einfach in eine ssh konsole eingeben würde, dann würde sich
    der screen den das script erstellt sofort terminieren bzw löschen.
    Und das script würde also nicht funktionieren.
    Desshalb würde ich sagen das zwischen den pfad und das script ein && reinkommt.
    aber es funktioniert trotzdem nicht :(
    Bei meinem hoster wurde ssh2_exec freigegeben,
    Oder muss ich selbst noch ein paar konfigurationen an meinem server vornehmen
    außer der installation von ssh2.
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    leopold2104 schrieb:
    Danke, der code würde theoretisch funktionieren nur ist es so, das
    es nicht so einfach funktioniert das man
    /pfad/zur/datei/script.sh
    Das geht nicht bzw funktioniert nicht
    Wenn man es so einfach in eine ssh konsole eingeben würde, dann würde sich
    der screen den das script erstellt sofort terminieren bzw löschen.
    Und das script würde also nicht funktionieren.
    Desshalb würde ich sagen das zwischen den pfad und das script ein && reinkommt.
    aber es funktioniert trotzdem nicht :(
    Dein && willst du wo genau und mit welchem Sinn einbauen?

    Was soll "dann würde sich der screen den das script erstellt sofort terminieren bzw löschen" bedeuten? Wer oder was terminiert welchen "screen" wann, wo und warum?

    Hast du den Code so wie ihn voloya gepostet hat überhaupt schon ausprobiert?
  8. Autor dieses Themas

    leopold2104

    leopold2104 hat kostenlosen Webspace.

    Ich habe den code eingebaut.
    sorry das ich das mit dem scren nicht erklärt habe
    In dem script was ausgeführt wird wird ein screen erstellt.
    das script lässt sich aber nur ausführen wenn der user sich erst
    In dem ordner navigiert hatt.
    //EDIT
    <?php
    session_start();
    if(!$_SESSION['logged_in'])
    	header("Location: index.html");
    ?>
    
    <!doctype html>
    <html>
    	
    	
    <?php
        
    	$connection = ssh2_connect('ip', 22);
    	ssh2_auth_password($connection, 'root', 'pass');
     if ($stream = ssh2_exec($connection, '/root/teeworlds-server/r00t-test-dm-2 && ./start.sh')) { echo "Server wurde gestartet"; } else {echo "Server konnte nicht gestartet werden.";} 
    ?>
    	
    </html>


    Wenn ich es so einfüge gibt der browser aus:
    server gestartet.
    aber er ist nicht online :(
    muss ich noch einstellungen am server vornehmen?
    Also am rootserver?

    Beitrag zuletzt geändert: 15.2.2013 13:08:55 von leopold2104
  9. Hallo :wave:

    leopold2104 schrieb:
    ssh2_exec($connection, '/root/teeworlds-server/r00t-test-dm-2 && ./start.sh')


    ->
    ssh2_exec($connection, '/root/teeworlds-server/r00t-test-dm-2/start.sh')


    so funktioniert's bei mir.

    mfg :wave:
  10. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    voloya schrieb:
    leopold2104 schrieb:
    ssh2_exec($connection, '/root/teeworlds-server/r00t-test-dm-2 && ./start.sh')
    ->
    ssh2_exec($connection, '/root/teeworlds-server/r00t-test-dm-2/start.sh')
    so funktioniert's bei mir.
    Wenn überhaupt müsste es so lauten:
    ssh2_exec($connection, 'cd /root/teeworlds-server/r00t-test-dm-2 && ./start.sh')
    Aber da wir den Inhalt seines start.sh-Scripts nicht kennen
  11. Hallo :wave:

    hackyourlife schrieb:
    Wenn überhaupt müsste es so lauten:
    ssh2_exec($connection, 'cd /root/teeworlds-server/r00t-test-dm-2 && ./start.sh')
    Aber da wir den Inhalt seines start.sh-Scripts nicht kennen…


    Bei mir funktioniert es so:

    if ($stream = ssh2_exec ($connection, '/home/minecraft/start.sh'))

    Vielleicht weils das Hauptverzeichnis ist?

    mfg :wave:
  12. Autor dieses Themas

    leopold2104

    leopold2104 hat kostenlosen Webspace.

    Soooo ....
    da es ja immer fehler mit dem navigieren gab hab ich es anders versucht und zwar:
    so sieht das script aus:
    <?php
    session_start();
    if(!$_SESSION['logged_in'])
    	header("Location: index.html");
    ?>
    
    <!doctype html>
    <html>
    	
    	
    <?php
        
    	$connection = ssh2_connect('ip', 22);
    	ssh2_auth_password($connection, 'root', 'pass);
     if ($stream = ssh2_exec($connection, '/start.sh'))
    	{ echo "Server wurde gestartet"; } else 
    	{echo "Server konnte nicht gestartet werden.";} 
    	fclose($stream);
    ?>
    	
    </html>


    sooo
    d.h. ich habe jetzt auf dem index meines root servers einen start.sh liegen mit folgenden inhalt:
    cd /root/teeworlds-server/r00t-test-dm-2
    ./start.sh


    wenn ich dieses scritp mit putty starte also /start.sh eingebe
    funktioniert alles.
    aber wenn ich die php datei aufrufe startet es nicht.
    in dem start.sh script aus dem ordner steht folgendes:
    screen wine ./teeworlds_srv



  13. Hallo :wave:

    <?php

    $connection = ssh2_connect('ip', 22);
    ssh2_auth_password($connection, 'root', 'pass);
    if ($stream = ssh2_exec($connection, 'screen -AmdS wine /root/teeworlds-server/r00t-test-dm-2/teeworlds_srv'))
    { echo "Server wurde gestartet"; } else
    {echo "Server konnte nicht gestartet werden.";}
    fclose($stream);
    ?>

    ^ ?

    mfg :wave:

    Beitrag zuletzt geändert: 15.2.2013 14:42:29 von voloya
  14. Autor dieses Themas

    leopold2104

    leopold2104 hat kostenlosen Webspace.

    danke aber
    schon wenn ich diesen befehl in putty eingebe startet er nicht:
    screen -AmdS wine /root/teeworlds-server/r00t-test-dm-2/teeworlds_srv'

  15. Hallo :wave:

    leopold2104 schrieb:
    danke aber
    schon wenn ich diesen befehl in putty eingebe startet er nicht:
    screen -AmdS wine /root/teeworlds-server/r00t-test-dm-2/teeworlds_srv'


    Öhm..
    screen -AmdS teeworlds wine /root/teeworlds-server/r00t-test-dm-2/teeworlds_srv'

    so? Du hättest ja auch mal den Inhalt deiner start.sh probieren können.. oder die Fehlermeldung geben können.. so können wir alle nur raten. Langsam verstehe ich, was midwar meinte. :biggrin:

    //EDIT: -AmdS starteet screen mit einem Namen und es wollte wohl wine als Namen nehmen. *Vermutung*

    mfg :wave:

    Beitrag zuletzt geändert: 15.2.2013 15:29:32 von voloya
  16. Autor dieses Themas

    leopold2104

    leopold2104 hat kostenlosen Webspace.

    funkt leider auch nicht
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!