XRDP Remote Desktop

xrdp – X-Server ist ein Remote Desktop Protocol (RDP) unter Linux

Die erste öffentliche Version von xrdp gab es Mitte 2005. RDP stellt über Netzwerke hinweg Virtuelle grafische Benutzeroberflächen bereit und nutzt die verfügbare Datenübertragungsrate effizienter als das traditionelle X-Window System und das verbreitete VNC.

xrdp das auf dem X-Window System basiert, begann ursprünglich mit der Entwicklung auf dem Xvnc Server. Seit der Version 0.9.1 ist der direkte Zugriff durch xrdpd auf dem normalen X-Server unter Verwendung eines virtuellen Bildschirm-, Maus- und Tastaturtreibers erlaubt.

xrdp unterstützt ein breites Spektrum an Features des RDP-Protokolls, darunter RemoteFX, Fastpath, Dateiübertragung, Remoteaudio sowie volle Unterstützung für die Zwischenablage.

Unter der Fedora 25 Workstation lässt sich der xrdp Server schnell installieren und steht nach wenigen Minuten bereit, die Default Konfiguration ist bereits passend und muss nicht wie bei vncserver erst erstellt werden..

Überprüfen lässt sich das erfolgreiche starten des xrdp daemon wie folgt:

Eine Windows RDP Verbindung kann nun mit dem On-Board Remotedesktop Client gestartet werden.

Remotedesktopverbindung

Im Register Lokale Ressourcen muss im Abschnitt Farben die Option High Color (16 Bit) gewählt werden.

xrdp

Zum Linux xrdp Remote Desktop wird mittels dem Windows Remotedesktop Client (mstsc) verbunden.

xrdp remote logon

Die lokale Bildschirmauflösung des Clients wird automatisch initialisiert.

xrdp remote desktop screen

Bei xrdp handelt es sich um eine Open-Source-Implementierung des Remote-Desktop-Protokolls, das die Windows Terminal Services verwenden, um sich mit Windows-Desktops zu verbinden. Das xrdp-Paket bringt das RDP-Protokoll auf den Linux-Rechner, indem es einen X-Server bereitstellt, der Verbindungen vom Rdesktop und Windows-Terminalserver-Clients annimmt.

VS Code Ordner öffnen

Der Lightweight Editor VS Code, ist ein cross-platform Editor für Entwickler dieser sich von integrierten Entwicklungsumgebungen (IDE) unterscheidet, wie Sublime, Atome oder Eclipse, kennt VS Code dennoch mit IntelliSense die automatische Vervollständigung bei der Bearbeitung von Quellcode und weist ein Debugger auf, beinhaltet jedoch keine integrierten Compiler oder Komponenten wie eine Versionsverwaltung, Projektmanagement oder die Möglichkeit der einfachen Erstellung von grafischen Benutzeroberflächen (GUI).

Entwickelt man mit VS Code wird auch hier ein Projekt Ordner angelegt, dies kann aus dem in VS Code integrierten Explorer getätigt werden, VS Code speichert die Arbeitsbereicheinstellungen in der Datei settings.json und die Einstellung für den Debugger in launch.json unter dem Ordner .vscode des jeweiligen Projekt Ordners.

Damit beim öffnen sämtliche Einstellungen zum Projekt geladen werden, kann VS Code im jeweiligen Projekt Ordner mit „Code . “ geöffnet werden, damit jedoch nicht erst die Eingabeaufforderung ausgeführt werden muss, dient folgender Registry Key, hiermit wird VS Code mit den Einstellungen des Projektes aus dem Windows Explorer geöffnet.

Mit Copy & Paste der REG Zeilen aus einer Eingabeaufforderung als Administrator  +R=cmd, erscheint das Kontextmenu Code hier öffnen mit einem Rechtsklick über dem gewählten Ordner.

VS Code open folder

PHP mit Windows 10 entwickeln

Der bei Windows 10 verfügbare Web-Server kann nicht nur statische HTML Seiten oder ASP-Code ausführen, er unterstützt auch PHP-Anwendungen. Einzig die Open-Source PHP-Binaries müssen separat heruntergeladen und installiert werden.

IIS Web-Server bereitstellen
PHP Windows Binaries Installation
Der Lightweight Code Editor
Debugging mit VS Code

Wer dynamische PHP Web-Seiten entwickeln möchte, benötigt hierfür nicht mehr den kompletten LAMP-Stack, wie beispielsweise in einer Linux Virtual Machine oder einer Windows-Implementierung wie XAMPP. Die beim IIS installierten PHP-Module und SQL-Server-Express erfüllen den Zweck oft auch. Falls es doch eine LAMP Umgebung sein muss, steht das Windows-Subsystem für Linux zur Verfügung, hierzu das einrichten von bash on Windows ebenfalls hier in diesem Blog.

IIS Web-Server bereitstellen

Die erforderlichen Internetinformationsdienste (IIS) werden wie folgt installiert, auf Systemsteuerung unter Programme => Programme und Features => Windows-Features aktivieren oder deaktivieren.

internetinformationsdienste
Internetinformationsdienste

Die erforderlichen Berechtigungen für den Ordner wwwroot sollten für Benutzer erteilt werden, diese später php-Dateien erstellen und bearbeiten sollen. Dies aus dem IIS-Manger (Inetmgr) oder Explorer => Eigenschaften => Sicherheit, Benutzer hinzufügen und Vollzugriff geben.

PHP Windows Binaries Installation

Nun besorgt man sich das passende PHP-Modul, das man von php.net herunterladen kann. Dort wählt man die gewünschte Version aus, dabei muss man sich zwischen der x86- und x64-Architektur entscheiden.

PHP Download: http://windows.php.net/download

Die PHP-Module liegen in einer Thread-Safe- und einer Non-Thread-Safe-Ausführung vor. Die IIS benötigen die Thread-Safe-Variante nicht.

Nach dem Download des ZIP-Archivs entpackt man dieses und kopiert den Inhalt in ein Verzeichnis, zum Beispiel unter C:\PHP. Danach lässt sich PHP einfach über den IIS Manager einbinden.

Mit  +R = inetmgr wird der Internetinformationsdienste (IIS)-Manager gestartet.

Internetinformationsdienste (IIS)-Manager
Internetinformationsdienste (IIS)-Manager

Ein Doppel-Klick auf Handlerzuordnungen und rechts im Fenster Aktionen auf Modulzuordnung hinzufügen klicken.

Die folgenden Werte eintragen um den CGI-PHP Handler zu erstellen.

Modulzuordnung hinzufuegen
Modulzuordnung hinzufügen

Nach dem Speichern der eingegebenen Daten ist ein Neustart des Web-Servers erforderlich. Dies kann man im IIS Manager im Abschnitt Aktionen veranlassen.

Den Suchpfad für C:\PHP erstellt man unter Systemsteuerung\System und Sicherheit\System  => Erweiterte Systemeinstellungen unten auf den Button Umgebungsvariablen klicken.

Umgebungsvariable bearbeiten
Umgebungsvariable bearbeiten

Um zu prüfen ob IIS nun tatsächlich PHP-Skripte ausführen kann, erstellt man eine Datei mit dem Inhalt:

und kopiert diese unter dem Dateiname phpinfo.php in das webroot-Verzeichnis (C:\inetpub\wwwroot). Ruft man nun phpinfo über die entsprechende URL im Browser (http://localhost/phpinfo.php) auf, sollten detaillierte Informationen über die installierte PHP-Version ausgegeben werden.

Nun können PHP Anwendungen entwickelt und getestet werden, hierbei bietet sich eine grosse Anzahl von Tools und Entwicklungsumgebungen an, geeignet ist hier das Open Source Programm Visual Studio Code. Bis auf den Namen und einigen Funktionen wie IntelliSense hat VS Code nichts mit Visual Studio gemeinsam.

Der Lightweight Code Editor

Im Gegensatz zu Visual Studio von Microsoft ist Visual Studio Code, kurz auch VS Code, ein Quelltext-Editor. Es handelt sich um kein vollwertiges IDE Tool, sondern um ein Text Editor der technologisch auf dem Electron (Framework) basiert, mit einer Reihe von leistungsstarken Funktionen, wie man es auch bei IDE Anwendungen findet, wie IntelliSense, Debugging und Git Source Control Integration. Er dient vorrangig der Entwicklung von Webanwendungen und ermöglicht die Programmierung unter C#, C++, CoffeeScript, CSS, HTML, Java, JSON, Perl, PHP, PowerShell, Python, Ruby und weitere mehr. Unterstützt wird VS Code von zahlreichen Extensions, damit lässt sich der Editor fast beliebig erweitern. VS Code wird hauptsächlich von einem Team in der Schweiz entwickelt, welches von Erich Gamma geleitet wird.

VS Code ist eine Cross-platform für Linux, Mac und Windows,
Download URL https://code.visualstudio.com/download

Im Unterschied zu Visual Studio arbeitet VS Code nicht mit Projektdateien, sondern auf Basis von Codedateien und Ordnern. Nach dem herunterladen und installieren erstellt man sich am besten ein Projekt Ordner, Beispielsweise codes\php hier unter dem Dokumenten Ordner.

Mit code . werden gleich alle Dateien die sich im Ordner befinden in VS Code geladen.

Hier sollen wir die VS Code Konfiguration für PHP erweitern, dies geschieht in dem man auf Datei => Einstellungen => Benutzereinstellungen geht, die Datei settings.json wird geöffnet, im rechten Edit Panel können die default settings überschreiben werden. Bei php.validate.executablePath muss der absolute Pfad zur PHP-Runtime eingetragen werden, hier ist es C:\php\php.exe. Mit Ctrl+S speichert man die Änderungen.

Die Konfigurationsdatei: %APPDATA%\Code\User\settings.json

Damit wir php Code Debuggen können braucht es die Xdebug Extension der entsprechenden Version von https://xdebug.org/download.php

Am besten ruft man phpinfo.php aus dem Browser auf, z.B. http://localhost/phpinfo.php und kopiert den Quelltext der Ausgabe von phpinfo in die Box Tailored Installation Instructions. URL https://xdebug.org/wizard.php

Füge die vollständige Ausgabe von phpinfo () ein (Copy & Paste der HTML-Version, oder den HTML-Quelltext) und klicke den Button Analyse my phpinfo() output, um den passenden Download Link und die Installationsanweisungen zu erhalten.

Ausgegeben wird eine Instruktion passend zur eigenen Umgebung, folge der Anweisung.

Wie gezeigt wird die DLL-Datei in den Ext. Ordner unter dem PHP-Runtime Pfad kopiert, nach C:\php\ext\php_xdebug-2.5.0-7.1-vc14-nts-x86_64.dll

Die Datei C:\PHP\php.ini muss noch editiert werden, die folgenden Zeilen werden am ende hinzugefügt.

Nach der Installation der Xdebug Extension wird VS Code gestartet mit  +R und code

Die PHP Debug Extension wird aus dem Visual Studio Marketplace installiert.

Hinzu kommen noch die Extensions Code Runner, PHP Code Format und PHP IntelliSense, diese direkt aus VS Code Extensions mit Ctrl+Shift+X heruntergeladen und installiert werden können, oder mit Ctrl+P : ext install code-runner

Im VS Code Explorer mit dem öffnen einer php Datei kommt man mit F5 in den Debug Modus, diesen wir für PHP wählen.

Es wird die json-Launcher Konfigurationsdatei geöffnet.

Der Xdebugger horcht nun auf Port 9000, die Werte können übernommen werden und mit Ctrl+S gespeichert werden. VS Code legt nun in jedem Projekt Ordner ein .vscode Ordner an, in diesem die Datei launch.json angelegt wird.

Wenn man sich jetzt noch Node.js besorgt, ist man mit php nun auch für die Java Syntax Prüfung und das Debugging komplett.

Debugging mit VS Code

Mit F5 wird der Debugger gestartet, hier ein kleiner Java Script, bevor das Debugging nun von statten gehen kann, muss der Launcher launch.json für den Script app.js erstellt werden, hierzu klickt man oben auf das kleine Zahnrädchen, die Datei launch.json wird in den Editor geladen, nun klickt man auf Konfiguration hinzufügen, der neue abschnitt wird übernommen, und unser app.js bei Program hinter {workspaceRoot} hinzugefügt.

VisualStudioCode_launch.json
Visual Studio Code launch.json

Der Debug Launcher mit Ctrl+S speichern, die Datei launch.json befindet sich nun im Unterordner .vscode.

Rechts neben der Zeilennummer werden die Breakpoints gesetzt, mit F11 geht es schrittweise zum nächsten Breakpoint.

VisualStudioCode_Debugging
Visual Studio Code Debugging

Die sonst blaue Statuszeile ist nun Orange, bezeichnend für den Debug Modus. Die IntelliSense Syntax Referenz wird mit Ctrl+Shift im Code aufgerufen.

VS Code Terminal
VS Code Terminal

Drückt man die Tasten Ctrl+Shift+! öffnet sich ein Terminal Fenster, in diesem mit dem Aufruf von node der Java Script sich ebenfalls ausführen lässt.

Erscheint die Meldung „Zurzeit ist kein Ordner geöffnet“ nach der Tasten Eingabe Ctrl+Shift+D oder mit klick auf das Debug Symol, geht man auf Datei => Ordner öffnen.. und wählt den Ordner mit den Dateien die man debuggen möchte. Nun kann man mit F5 den Debug Mode starten, falls launch.json nocht nicht erstellt wurde, wird diese generiert, die Datei launch.json kann über den VS Code Explorer geöffnet und ggf. angepasst werden. Es wird für jede Code Datei ein Eintrag in launch.json vorgesehen, bei „program“: „${workspaceRoot}/app.js“ wobei app.js die Datei ist die man Debuggen möchte.

CS Code Runner

Drückt man die Tasten Alt+Ctrl+N oder geht über das Kontext Menu Run Code, wird der Script ausgeführt, der Output wird unten ausgegeben.

Windows 10 Version und Build

Die Versionierung von Windows 10 ist komplexer geworden, weil neben der Major Version auch die Build Number und die Release ID erkennbar sein muss, auch um damit die Funktionalität des Systems zu beurteilen ist. Diese Informationen muss man aus diversen Quellen abrufen.

Mit Windows 10 hat Microsoft die Versionierung geändert. Mit der Build Number wird die Kernelversion von Windows bezeichnet. diese soll künftig anstelle der Windows Version stehen. Laut Microsoft soll Windows 10 bekanntlich die letzte Windows Version sein. Es bedeutet, dass Windows 10 nur noch per Update erneuert wird. Um welche Windows Installation es sich handelt, kann anhand der Build Number festgestellt werden.

Windows Version ermitteln

Mittels Eingabe des Befehles „ver“ aus der Eingabeaufforderung,  +R=cmd wird die Windows Version ermittelt:

windows version

Mit dem Befehl  +R=winver  wird auch die Build Number und die Edition ausgegeben.

Natürlich ist die Version und Build Number abfrage aus der PowerShell möglich.

windows version cmdlet

Adäquater erscheint die Ausgabe mit folgendem PowerShell Scriptlet.

windows_version_powershell_ise

Die Zeilen können in PowerShell ISE eingefügt und ausgeführt werden.

Linux Version ermitteln

Und wenn wir schon mal dabei sind, hier gleich die Ausgabe der Kernelversion einer Linux Distribution:

linux version

Und bei Mac OS X mit dem Befehl sw_vers aus dem Terminal:

OXS Version

VIM unter Windows 10

Der VIM – Editor gilt unter Linux und Unix als das Urgestein und ist der Standard Editor unter POSIX, selbst Mac OS X spendiert uns den VIM Editor, dieser aus dem Terminal aufgerufen werden kann.

VIM on Windows 10Vim (Vi IMproved) ist eine Weiterentwicklung des Texteditors vi. Das freie Open-Source-Programm wurde 1991 von Bram Moolenaar veröffentlicht – ein mächtiger Syntax Highlight Editor, weit verbreitet bei Entwickler beim arbeiten mit Code und Scripts, wer mit Regex Ausdrücke arbeitet hat mit VIM ein vielseitiges Tool, der stehts weiter entwickelte Editor ist heute für nahezu jedes Betriebssystem verfügbar.

Unix Admins die mit Windows arbeiten brauchen somit nicht auf den gewohnten Editor zu verzichten, hier kann mit VIM für Windows ebenfalls nachgeholfen werden. VIM holt man sich am besten gleich auf http://www.vim.org/ bei Download – PC: MS-DOS and MS-Windows, wer möchte kann mit dem Self-installing executable Binary die Installation automatisch durchführen, oder die Runtime files vim##rt.zip und die Win32 console executable vim##w32.zip selber in den Pfad C:\Program Files (x86)\vim\vim80 kopieren.

Die VIM Konfiguration findet über Umgebungsvariablen statt, die Einträge werden mit  +X unter System -> Erweiterte Systemeinstellungen -> Umgebungsvariablen eingefügt, unter Systemvariablen wird der Pfad hinzugefügt, hier ist es C:\Program Files (x86)\vim\vim80, dann die Variable VIM hinzufügen, als Wert wird C:\Program Files (x86)\vim eingetragen .

VIM Systemvariablen
VIM Systemvariablen

Die Konfigurationsdatei _vimrc muss oberhalb des Programm Ordners zu stehen kommen, unter C:\Program Files (x86)\vim, entsprechend des wertes der Umgebungsvariable – VIM. Bei Benutzer Einstellung ist die Datei unter dem Userprofil Pfad bei %USERPROFILE%.

Mit einem Symlink auf VIM wird der Befehl vi verfügbar. Dazu mklink aus einer als Administrator geöffneten Eingabeaufforderung,  mit  +R = cmd ausführen.

Beispiel: _vimrc (beginnt mit _Unterstrich) diese für alle Benutzer unter C:\Program Files (x86)\vim\ sein muss, sollen Benutzer Einstellungen gelten, kommt _vimrc unter %USERPROFILE% zu stehen.

Tip: Mit einer Windows Explorer Kontextmenü-Erweiterung lässt sich ein öffnen mit VIM Editor Menü Eintrag anlegen. Das vorgehen wird in meinem Beitrag Explorer Kontextmenü erweitern aufgezeigt.

VIM Kontextmenu