WSL Setup (für Yellow)

Das Windows Subsystem Linux auf einem Windows 10(x64)-Rechner installieren und — optional — die erforderlichen Schritte zur Entwicklung von „Yellow“-Webseiten damit.

Die nachfolgende Beschreibung ist im Wesentlichen als „Liste zum Abarbeiten“ gedacht und auf das (subjektiv) Nötigste reduziert, ohne tiefergehenden Erklärungen. Grundsätzlich gilt:

Auf Fehlermeldungen achten und ggf. beheben.

Sie ist mittels wiederholten Ausprobieren und herantasten entstanden und hat auf zwei Rechnern (Desktop und Laptop) zum Erfolg geführt. Es funktioniert zwar alles, doch mangels tiefergehendem Linux-Wissen, fehlen womöglich noch zweckmäßige, sinnvolle oder gar notwendige Hinweise. Deshalb:

Hinweise zur Verbesserung sind äußerst willkommen.

Am Ende des Artikels sind die wesentlichen Quellen aufgeführt, aus denen diese „Checkliste“ extrahiert wurde.

WSL installieren

  • WSL Aktivieren → Powershell (als Administrator)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • Update WSL2 → Powershell (als Administrator)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
  • Linux-Distribution holen (hier verwendet):

  • Herunterladen, Installieren (kann etwas dauern)

  • Starten
    • Bei → Error: 0x80370102
      • Hyper-V aktiviert?
        • Apps & Features
          Programme & Features
          Windows-Features aktivieren oder deaktivieren
        • Hyper-V alles aktivieren
      • Im BIOS muss die Virualisierung deaktiviert sein
      • Rechner neu starten

Konsole konfigurieren

Diese Einstellungen sind für die nachfolgenden Schritte (wg. „reinkopieren“ und „was hab ich schon gemacht“) zweckmäßig. In den Linux-Konsole-Eigenschaften (Rechtsklick oben auf den Fensterrahmen):

  • Optionen:
    • Quick Edit-Modus (Mausunterstützung) und …STRG UMSCHALT C/V… (Zwischenablage von/zur Konsole mit SHIFT STRG C/V) aktivieren.
  • Layout:
    • Fensterpuffergröße die Höhe vergrößeren (deutlich größer als bei Fenstergröße): Das ist die Anzahl Zeilen, die im Puffer gehalten werden. Dann kann zurückgerollt werden…

Die Konsole merkt sich das dauerhaft.

Linux einrichten

  • Benutzerkonto einrichten (Benutzer, Passwort) → für den Benutzer sind nur kleine Buchstaben zulässig
  • Aktualisieren (Linux-Konsole):
sudo apt update
sudo apt upgrade
  • Die angebotene Aktualisierungen durchführen:
    • Mit Passwort die Aktualisierung erlauben
    • [Y/n] mit Enter bestätigen.

Das sollte in regelmäßigen Abständen wiederholt werden.

Linux zurücksetzen

Eine „zerspielte“ Linux-Installation kann in Windows mit →Apps & FeaturesUbuntuErweiterte OptionenZurücksetzen wieder in den Zustand ab „Benutzerkonto einrichten“ zurückgesetzt werden.

Eventuell muss nach dem Zurücksetzen über den Store (s.o.) neu installiert werden (wenn Ubuntu aus Apps & Features verschwindet). Das erneute Herunterladen entfällt, wenn keine neuere Version vorliegt.

Lamp-Server („localhost“) installieren

sudo apt-get install lamp-server^      ← Das »^« ist relevant: Ganzes Paket „in einem Zug“

Apache Konfiguration anpassen

Grundlegendes Verhalten des Apachen definieren.

sudo nano /etc/apache2/apache2.conf
  • Mit F6 nach /var/www/ suchen und den DirectoryAbschnitt so modifizieren, die Accept-Zeilen dahinter einfügen:
<Directory /var/www>
  Options -Indexes
  AllowOverride All
  Require all granted
</Directory>

AcceptFilter http none
AcceptFilter https none
  • Mit STRG O die Datei speichern (mit Enter bestätigen)
  • Mit STRG X Nano schließen

Webserver starten

  • Die Instanz (Ubuntu 20.04 LTS) starten (Kachel anklicken)
  • In der Linux-Konsole
sudo service apache2 start
  • Im (Windows-)Browser
localhost

Wenn die „Apache2 Ubuntu Default Page“ kommt, hat alles geklappt.

Aufrüsten für Yellow

Die nachfolgenden Befehle in der Linux-Konsole installieren alles, was für den Betrieb von YELLOW erforderlich ist. [Y/n] mit Enter bestätigen, Passwort – wo gefordert – eingeben, eventuelle Fehlermeldungen beachten:

sudo apt install libapache2-mod-php php-curl 
sudo apt install php7.4-gd 
sudo apt install php7.4-mbstring
sudo apt install php7.4-zip
sudo apt install php7.4-xml
sudo a2enmod rewrite 

Jetzt muss der Apache (wie angegeben) neu gestartet werden.

Eigene Webseiten erstellen

In der Linux-Konsole den Ordner html für den Explorer beschreibbar machen und ihn damit öffnen:

cd /var/www
sudo chmod -R 0777 *
sudo chmod -R a+rw *
explorer.exe . ← Punkt = „hier“ öffnen

Alternativ kann das Verzeichnis im Explorer navigiert werden:
Netzwerkwsl$Ubuntu-20.04varwwwhtml

Zone.Identifier

Beim Kopieren von Daten aus Windows in das Subsystem werden typischerweise Meta-Daten für die Vertrauenswürdigkeit von Dateien mit …Zone.Identifier-Dateien angelegt. Sie werden erst sichtbar, wenn nach dem Kopieren der Ordner aktualisiert wird (Verzeichnis im Explorer anklicken). Das lässt sich vermeiden:

  • Rechtsklick auf die zu kopierende(n) Datei(en)
  • Reiter Allgemein → Sicherheit → Checkbox Zulassen aktivieren

Die so behandelten Dateien sind dauerhaft aus dem Sicherheitsmodell ausgeklammert, das ist unumkehrbar. Also nur auf Dateien anwenden, die als „verbindlich sicher“ eingestoft werden können (ggf. vorher mit Virenscanner untersuchen).

Wurde diese „Vertraulichkeit“ auf eine ZIP-Datei angewandt, gilt das gleichermaßen für alle daraus ausgepackten Dateien.

Die .Zone.Identifier-Dateien machen z.B. Stress beim Packen von Zip-Dateien. sollte es da Probleme geben, hilft ggf ein

 find /var/www -iname "*identifier" -delete

in der Linux-Konsole weiter. Das geht erheblich einfacher, verlässlicher und vor allem schneller als eine Suche im/mit dem Explorer.

Yellow-Dateien kopieren

Wahlweise das heruntergeladene ZIP oder die ausgepackten Dateien in das HTML-Verzeichnis kopieren und in der Linux-Konsole Schreibrechte einrichten:

cd /var/www
sudo chmod -R a+rw *

Jetzt sollte - Beim Aufruf von localhost im Browser die Einrichtungsmaske von YELLOW angezeigt werden - YELLOW damit installierbar sein - ABER,…
… weil nach dem Setup für Wiki oder Blog einige neue Ordner entstanden sind, fehlen dort die Schreibrechte für den Explorer. Dafür in der Linux-Konsole mit der Pfeil-hoch-Taste den letzten chmod-Befehl in die Kommando-Zeile holen und nochmal abfeuern.

Faustformel: Wenn der Explorer zickt, sind es fast immer ausschließlich Rechte-Probleme. Dann vorzugsweise in das darüber liegende Verzeichnis gehen und mit sudo chmod -R 0777 * und/oder sudo chmod -R a+rw * die erforderlichen Rechte holen.

Mit diesen Einstellungen ist das damit behandelte Verzeichnis (hier: localhost) „sperrangelweit offen“. Daher muss dieser Ordner von außen unerreichbar sein!

Wem das zu riskant ist, kann alternativ von der Linux-Konsole aus die Dateien vom Windows-Rechner in das Verzeichnis kopieren.

Sicherung der Instanz anlegen (optional)

In der Powershell

wsl --export Ubuntu-20.04 [Pfad/Dateiname.tar]

ein Backup „bis hierhin“ sichern. Dieser Export kann mit

wsl --import Ubuntu-20.04 [Pfad/Dateiname.tar]

wieder hergestellt werden. Unter dem vorherigen Namen kann es nur importiert werden, wenn die gleichnamige (zerspielte) Instanz abgehängt wurde:

wsl --unregister Ubuntu-20.04

Eine importierte Instanz benötigt eine „eigene Kachel“.

Quellen