Das W indows S ubsystem L inux auf einem Windows 10(x64)-Rechner installieren und — optional — die erforderlichen Schritte zur Entwicklung von „Yellow“-Webseiten damit.
Bis Ende 2020 war Yellow das preferrierte CMS für viele von mir erstellte und betreute Webseiten. Durch wiederholt undokumentierte Änderungen, die keine Abwärtskompatibilität hatten, sowie einen für ein kooperatives Team unangemessenen Umgang hat es sich für den ernsthaften Einsatz für Webseiten leider disqualifiziert.
Die Anleitung für die Installation von WSL kann dennoch für andere Zwecke nützlich sein.
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:
Wichtig: 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 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
- Rechner neu starten
- Updatepaket für Linux-Kernel holen und installieren
- Default-Version festlegen → Powershell
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 mitSHIFT
STRG
C
/V
) aktivieren.- Layout:
Fensterpuffergröße
die Höhe vergrößeren (deutlich größer als beiFenstergröß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 & Features
→Ubuntu
→Erweiterte Optionen
→Zurü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 denDirectory
Abschnitt so modifizieren, dieAccept
-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 (mitEnter
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:
→ Netzwerk
→wsl$
→Ubuntu-20.04
→var
→www
→html
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 → CheckboxZulassen
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 derPfeil-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 <em>
und/oder sudo chmod -R a+rw </em>
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
- AskUbuntu
- Microsoft
- WindowsPro
- Apache-Rechte setzen1
- wsl-Export/Import
- Import/Export WSL
- Subsysteme verwalten
- Heise: Dateien „find“en
- Darüber hinaus diverse Seiten, die Auskunft über einzelne Linus-Kommandos gaben, die in letzter Konsequenz für das hier angestrebte Ergebnis allerdings keine erwähnenswerte Relevanz hatten.