SymBox Remote Development

Hi,

ich möchte remote gegen eine Symbox PHP-Skripte mit einer IDE (PHP-Storm, VS-Code) entwickeln. Da die IDEs selber meist Remotezugriffsmöglichkeiten gegen LINUX-Systeme bieten, hatte ich hier nicht wirklich mit Problemen gerechnet.

Bei Visual Studio Code scheint das Problem zu sein, dass auf der Symbox keine Bash-Shell vorhanden ist. Bei meinem Favoriten „PHP-Storm“ ist anscheinend keine Möglichkeit vorhanden per SFTP auf die Box zuzugreifen. In dem SSH-Server „dropbear“ ist die Option SFTP offensichtlich nicht konfiguriert/aktiviert, so dass eigentlich nur SCP überigbleibt, welche die IDEs nicht unterstützen (PHP-Storm) oder nur im Zusammenhang mit der Bash-Shell (VS-Code). Mit WinSCP und auch anderen Tools kann man zwar teilweise auf die Symbox zugreifen, jedoch ist es komfortabler und einfacher die integrierten Remote-Funktionen der IDEs zu nutzen.

Wie macht ihr das mit dem Remotezugriff aus einer IDE direkt auf eine Symbox? Besteht die Möglichkeit, das die Symbox um die SFTP-Funktion erweitert werden kann oder mache ich bei PHP-Storm prinzipiell was falsch?

Viele Grüße
heimic

Ich kenne dein Problem :slight_smile: Die Ursache liegt darin begründet, dass Dropbear kein SFTP kann. Und ein ganzer SFTP Server bzw. OpenSSH am Start zu haben würde viel zu viel Overhead mit sich bringen.

Am coolsten wäre ein PHPStorm Plugin, welches den Objektbaum als VFS direkt in PHPStrom holt. Ich hatte mich daran mal vor Jahren versucht - mein Java-Fu war aber nicht stark genug. Vielleicht hättest du Lust so etwas zu bauen, sodass es direkt auf die Symcon JSON-RPC API aufsetzt? Damit könnte man dann auch sauber die Skripte starten und alles in einem Plugin festhalten?

paresy

Da muss ich noch ein bisschen an meinem Software-Fu (ist aktuell noch angestaubt) arbeiten um das mit dem VFS umzusetzen. Ich werde aber erst einmal die neue „Remote Development“ (RD) Funktion von JetBrains ausprobieren, auch wenn ich dafür eine VM nehmen muss (Ubuntu 22.04 LTS) und wahrscheinlich mit der Remote Host Funktion von PHPStorm auch keine Probleme hätte.
Ich bin aber gespannt, ob man mit dem RD auch vernünftig Debuggen kann. Auch wenn im Moment nur Intel/Amd unterstützt wird, so soll es doch von JetBrains auch eine Arm64 Unterstützung geben. Vielleicht ist ja der RD-Code static linked und könnte so auf der SymBox laufen?

Ich melde mich dann noch einmal, wenn ich mit meinen IDE-Spielereien durch bin.

heimic

Falls es hier etwas neues gibt wäre ich um einen Hinweis sehr dankbar.

Da ich mich aktuell mit der Modulentwicklung beschäftige (die über unterschiedliche Rechner und auch remote geht) und dazu VSCode & Git verwende sind dass ganz schön viele (überflüssige) Commits bei den vielen try and error :scream: :innocent:

Ich würde nicht auf der SymBox entwickeln sondern auf einer lokalen Installation von IPS. Oder gibt es einen Grund warum es „on device“ passiert?

Außerdem kannst du Änderungen problemlos per SCP hochladen. Commits per Git sind immer die falsche Lösung :slight_smile:

paresy

Für VSCode gibt es Sync Erweiterungen welche auch SCP können :slight_smile:
Michael

2 „Gefällt mir“

Vielen Dank @paresy , verstehe.
Das ist zwar etwas umständlicher mit den verteilten Entwicklungsmaschinen, aber try/error/Overhead natürlich viel entspannter.
Danke noch mal.

Dann werde ich noch mal suchen. Vielen Dank.

1 „Gefällt mir“

Also ich mach das immer so …

  • einfach per Knopfdruck in IPS einspielen

  • manchmal noch per MC_ReloadModule bei Änderungen an Funktionen und Registrierungen dem System mitteilen das dass Modul neu geladen werden muss

Fertig!

Dauert 10-15min und man kann loslegen zu entwickeln!

Gruß HEiko

1 „Gefällt mir“

Kann der SCP für die Symbox?
Frage eigentlich nur aus Interesse, weil ich entwickelt unter Windows und habe einfach die Symcon UserDir auf ein Netzwerklaufwerk umgebogen.
Somit kann ich von jedem Rechner aus direkt auf dem share arbeiten und testen.

Ich hatte vorhin Ssync ausprobiert, der nutzt externe Tools von openssh.
Michael

Oh, das könnte sein das es nicht geht. Ich nutze SFTP über Port 22 per Key-file!

Muss man sich vielleicht eine andere Extension suchen!

Gruß Heiko