Send SSH Command via PHP?
Hallo, ich habe folgendes Problem:
Ich möchte es möglich machen, auf meiner Webseite einen Bot neuzustarten.
Dazu müsste ich aber eine SSH-Verbindung zu einem Server aufbauen, also Remote, um einen Command senden zu können.
Alles was ich in Google finde, geht nicht (es passiert einfach gar nichts, weder gibt es Fehler noch irgendwelche Logs).
3 Antworten
a) Nutze das SSH-Modul von PHP:
- Übersicht
- ssh2_connect (im Kommentarbereich findest du dazu auch ein vollständiges Beispiel)
b) Schau dir phpseclib an.
Alles was ich in Google finde, geht nicht (es passiert einfach gar nichts, weder gibt es Fehler noch irgendwelche Logs).
Dazu lässt sich nicht viel sagen. Lediglich ein paar Tipps für das Debugging mit PHP kann ich dir mitgeben:
- Nutze zur Ausgabe von Variablen stets var_dump. So kannst du ihren tatsächlichen Wert einlesen und läufst nicht Gefahr, dass dir PHP implizit Werte konvertiert (false wird bspw. schnell einmal in eine leere Zeichenkette umgewandelt).
- Lasse dir eindeutige Zwischenergebnisse ausgeben. Berücksichtige dabei jeden möglichen Programmzweig.
- Viele PHP-Funktionen liefern Rückgaben (schau dazu in die jeweilige Dokumentation). Verwerte sie (lasse sie dir ausgeben / nutze if-else / o.ä.).
- Aktiviere das Error Reporting am Anfang deines Skripts.
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
dann lerne mal wie man mit einem Composer umgeht . Damit wird das installiert .
ja xD ne aber ich dachte da gibt´s was was gut ist
du hast es gar nicht versucht . und ich bin hier nicht deine findemaschine .
das kyword habe ich dir genannt .
ab dem zeitpunkt heisst es : Hilf dir selbst, sonst hilft dir niemand .
Für das SSH-Modul von PHP: Möglicherweise. Das kannst du mit Hilfe der von mir verlinkten Dokumentation prüfen und gegebenenfalls nachholen.
Für die Bibliothek: Das Kommando für Composer wird hier aufgeführt. Die Dokumentation für Composer findest du hier.
Hi,
Vorweg eine Verständisfrage:
Läuft den der Bot, den du starten möchtest auf der selben Maschine wie dein php?
Wenn ja, dann ist das bereits erwähnte shell_exec dein Weg.
Wenn nein, dann ist das bereits erwähnte ssh2_connect eine Lösung.
Viele Grüße,
T.
Danke. Nein es leuft auf einer unabhängigen maschiene deshalb soll es ja auch remote passieren
shell_exec();
Danke aber das funktioniert nicht. Habe ich versucht aber es passiert einfach nichts weder error noch irgendwelche logs
ja klar, du musst es erst installieren und konfigurieren :)
Öhm wie oben beim kommentar schon gesagt
ich finde den weg immer zu github weiß aber nicht was ich mir da runterladen muss und wie ich das einbinde
Danke. Aber um das php modul nutzen zu können muss man da nicht etwas installieren? ich finde den weg immer zu github weiß aber nicht was ich mir da runterladen muss und wie ich das einbinde