frage zu ssh mit php
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befehl
button
code
dank
datei
forum
funktionieren
hilfe
index
inhalt
kennen
konsole
lauten code
ordner
pfad
server
start
test
theoretisch funktionieren
url
-
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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
Sorry, ich hatte es mir selbst zusammen gebastelt aber es funktionierte nicht :(
-
Hallo
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
Beitrag zuletzt geändert: 15.2.2013 13:10:46 von voloya -
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.
-
leopold2104 schrieb:
Dein && willst du wo genau und mit welchem Sinn einbauen?
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 :(
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? -
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 -
Hallo
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 -
voloya schrieb:
Wenn überhaupt müsste es so lauten:
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.
Aber da wir den Inhalt seines start.sh-Scripts nicht kennen…ssh2_exec($connection, 'cd /root/teeworlds-server/r00t-test-dm-2 && ./start.sh')
-
Hallo
hackyourlife schrieb:
Wenn überhaupt müsste es so lauten:
Aber da wir den Inhalt seines start.sh-Scripts nicht kennen…ssh2_exec($connection, 'cd /root/teeworlds-server/r00t-test-dm-2 && ./start.sh')
Bei mir funktioniert es so:
if ($stream = ssh2_exec ($connection, '/home/minecraft/start.sh'))
Vielleicht weils das Hauptverzeichnis ist?
mfg -
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
-
Hallo
<?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
Beitrag zuletzt geändert: 15.2.2013 14:42:29 von voloya -
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'
-
Hallo
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.
//EDIT: -AmdS starteet screen mit einem Namen und es wollte wohl wine als Namen nehmen. *Vermutung*
mfg
Beitrag zuletzt geändert: 15.2.2013 15:29:32 von voloya -
funkt leider auch nicht
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage