- Optional: Windows Terminal installieren (https://learn.microsoft.com/de-de/windows/terminal/install)
- Folgende Windows-Features aktivieren und anschließend neu starten:
- Hyper-V
- Windows Subsystem for Linux
- VM-Plattform
- Powershell:
wsl --update
- Git auf Windows installieren. Dieses wird nun nur noch benötigt, um die nachfolgende Einrichtung für WSL durchzuführen. Dabei wird dann git auch innerhalb von WSL installiert. Für die spätere Entwicklung kann dann dieses Binary verwendet werden.
- Powershell:
git config --global core.autocrlf input
- Optional: Bei erstmaliger Einrichtung eines Users einen SSH Key anlegen: Powershell
ssh-keygen -t ed25519 -C "<email>@wagner-ecommerce.group"
. Das somit erstellte SSH Keypaar befindet sich nun im Ordner %HOMEPATH%\.ssh. Den Publickey (Dateiendung .pub) bei GitHub hinterlegen.
- Repo "wsltooling" in C:\Users<windows-username>\git klonen: https://github.com/cherrmann89/wsltooling
- Verzeichnis C:\Users<windows-username>\wsl anlegen
- GitHub Token mit den Rechten repo:all, read:org und admin:public_key:all erzeugen und in C:\Users<windows-username>\wsl\.token speichern
- Verknüpfung im Verzeichnis C:\Users<windows-username>\wsl anlegen. Als Speicherort
powershell.exe -NoExit -execution bypass "%HOMEPATH%\git\wsltooling\installUbuntuLTS.ps1 dev-infra %HOMEPATH%\wsl\dev-infra <wsl-distro-username> <github-username> C:\Users\<windows-username>\wsl\.token"
angeben. Hierbei kann der<wsl-distro-username>
frei gewählt werden,<github-username>
muss dem Usernamen bei GitHub entsprechen und<windows-username>
dem Usernamen auf Windows. Im nächsten Schritt kann der Verknüpfungsname frei gewählt werden. - Sicherstellen, dass das VPN aktiv ist.
- Die gerade erstellte Verknüpfung per Doppelklick ausführen. Leider können nicht alle für das Skript benötigten Parameter direkt mit in der Verknüpfung angegeben werden, da es hier eine Längenbeschränkung gibt. Daher werden bei Ausführung der Verknüpfung die restlichen Parameter abgefragt und diese müssen über die sich öffnende PowerShell eingegeben werden.
- Das ausgeführte Skript installiert nun eine aktuelle Ubuntu Version als WSL Distro und startet anschließend ein Ansible Playbook, um die Distro zu provisionieren.
-
Host-Einträge anlegen (C:\Windows\System32\drivers\etc\hosts)
IP der WSL-Instanz mittels Powershell ermitteln:
wsl -d dev-infra ip -o -4 -json addr list eth0 | ConvertFrom-Json | %{ $_.addr_info.local } | ?{ $_ }
Host-Einträge:
<WSL-IP> web.dev.local
<WSL-IP> lvs.dev.local
-
Umgebungsvariable für Xdebug erstellen und laden. Innerhalb der dev-infra Bash:
echo 'export PHP_IDE_CONFIG="serverName=WSL-dev-infra"' >> ~/.profile; source ~/.profile
-
PHPStorm durch Firewall zulassen: Das Menü "Apps über die Windows-Firewall kommunizieren lassen" -> "Einstellungen ändern" -> In der Liste PHPStorm suchen und den Haken bei Domäne und Privat setzen.
- PHP-Interpreter:
- Settings -> PHP -> CLI-Interpreter -> + -> "From Docker, Vagrant [...]"
- WSL Distro auswählen
- Server erstellen:
- Settings -> PHP -> Servers -> + Name: WSL-dev-infra Host: web.dev.local Port: 443 Debugger: Xdebug Use Path mappings: /home/<wsl-distro-username/projects/shop
- Debugger konfigurieren:
- Settings -> PHP -> Debug -> Sektion Xdebug Debug port: 9003,9000,9010
- PhpStan konfigurieren
- Settings -> PhpStan
- Composer konfigurieren
- Settings -> PHP -> Composer: Unter Path to composer.json den Pfad auswählen (z.B. im shop Repo \\wsl.localhost\dev-infra\home<wsl-username>\projects\shop\composer.json) und unter Execution Remote Interpreter auswählen. Als CLI Interpreter den unter Punkt 1. erstellten CLI Interpreter auswählen. Path mappings und Executable sollten direkt gesetzt sein.
- Anschließend kann die composer Integration über PHPStorm benutzt werden, z.B. wenn die composer.json geöffnet ist, kann man auf install klicken, um die Abhängigkeiten zu installieren.
- Node konfigurieren
- Settings -> Languages & Frameworks -> Node.js: Hinter Node Interpreter auf die 3 Punkte klicken, dann mit dem + einen neuen Interpreter hinzufügen Add WSL. Als Linux distribution dev-infra auswählen. Der Pfad zum Executable sollte dann direkt ausgefüllt werden.
- Der Pfad zum npm executable sollte dann auch direkt ausgefüllt sein.
- Anschließend kann die npm Integration über PHPStorm benutzt werden, z.B. wenn die package.json geöffnet ist, erscheint ein Pop mit
npm install
oder man kann direkt einzelne Befehle in der package.json anklicken und somit laufen lassen.
-
Projekte auf ungepushte Änderungen überprüfen
-
Distro mittels Powershell entfernen
wsl --unregister dev-infra
-
Angelegte Verknüpfung im Verzeichnis C:\Users<windows-username>\wsl ausführen