Tags: Windows 10, Linux, Datenbanken, Web-Server
Das in Windows 10 2004 enthaltene Subsystem for Linux 2 (WSL2) umfasst einen eigenen Linux-Kernel und kann zahlreiche Programme für das Open-Source-OS nativ ausführen. Daher bietet es sich etwa an, diese Umgebung für die Web-Entwicklung zu nutzen und dort Apache, MySQL und PHP zu installieren.
Um einen LAMP-Stack unter Windows zu betreiben, kann man Linux natürlich in einer virtuellen Maschine installieren. Darüber hinaus gibt es Portierungen von Apache, PHP und MySQL bzw. MariaDB für Windows, so dass man sie etwa mittels XAMPP auch dort einrichten kann.
Vorteile von LAMP in WSL
Im Vergleich zu Linux in einer VM bietet WSL2 eine wesentlich engere Integration mit Windows 10. So kann man aus der bash auch Windows-Anwendungen starten oder man kann mit dem Explorer durch das Linux-Dateisystem navigieren.
Interessant ist auch, dass sich Linux-Services von Windows aus über localhost ansprechen lassen, etwa wenn man eine Web-Anwendung unter Linux ausführt und sie im Browser unter Windows anzeigen möchte.
Die Windows-Portierungen der LAMP-Komponenten sind nicht ideal, wenn man eine Web-Anwendung lokal entwickelt, aber die produktive Umgebung dann unter Linux läuft. Auch hier erweist sich WSL2 als guter Kompromiss, weil es ein natives Linux in der vertrauten Windows-Umgebung bereitstellt.
Vorgehen unter Ubuntu
Microsoft bietet für WSL2 mehrere Linux-Distributionen zur Auswahl an, die man über den Microsoft Store installieren kann, sobald man das Subsystem als Windows-Feature aktiviert hat (siehe dazu: Subsystem for Linux 2 (WSL 2) in Windows 10 2004 und Server Preview installieren).
Diese Anleitung zeigt die Einrichtung eines LAMP-Stacks anhand von Ubuntu, das aktuell in den Versionen 18.04 und 20.04 vorliegt. Nach dem ersten Start und dem Festlegen des root-Passworts gibt man zuerst diese Kommandos ein, um anstehende Updates einzuspielen:
sudo apt update
sudo apt upgrade
Anschließend kann man sich an die Installation von Apache, MySQL und PHP machen.
Installation von lamp-server ausführen
Einige Anleitungen im Web übergeben dazu die Namen sämtlicher Komponenten an apt-get. Einfacher geht es, wenn man dafür das Meta-Package lamp-server nutzt, auch wenn man dabei nicht bis ins Detail die Kontrolle über die Installation hat:
sudo apt-get install lamp-server^
Das Caret nach lamp-server ist erforderlich und kennzeichnet dieses als Meta-Package.
Während der gesamte Vorgang unter Ubuntu 18.04 ohne Unterbrechung durchläuft, scheitert in der Version 20.04 die Installation von MySQL 8.0 (Ubuntu 18.04 nutzt standardmäßig MySQL 5.7). Dabei erscheint die Fehlermeldung:
Errors were encountered while processing: mysql-server-8.0
E: Sub-process /usr/bin/dpkg returned an error code (1)
Verschiedene Foren widmen sich diesem Problem, aber im Moment scheint es dafür keine Lösung zu geben. Man kann es bloß umgehen, indem man die installierten MySQL-Komponenten entfernt und danach als Alternative MariaDB einrichtet:
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo apt install mariadb-server
Apache anpassen
Wenn man nach erfolgreicher Installation zuerst den Apache-Server startet, dann wirft dieser folgende Warnung aus:
(92)Protocol not available: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT
Daher sollte man vorher die Konfigurationsdatei mit
sudo vi /etc/apache2/apache2.conf
öffnen und dort die Zeilen
AcceptFilter http none
AcceptFilter https none
einfügen.
Nun startet man Apache mit
sudo service apache2 start
Beim ersten Mal meldet sich die Windows-Firewall, in der man die Kommunikation von apache2 zulassen muss.
Funktionsfähigkeit von PHP prüfen
Im nächsten Schritt empfiehlt es sich, die korrekte Funktion von PHP zu testen (Ubuntu 20.04 nutzt per Voreinstellung PHP 7.4, Ubuntu 18.04 die Version 7.2). Dazu legt man unter /var/www/html eine Datei mit dem Namen phpinfo.php an und fügt folgenden Inhalt ein:
<?php
phpinfo();
?>
Über
http://localhost/phpinfo.php
sollten sich die Informationen über das installierte PHP anzeigen lassen.
MySQL konfigurieren
Auch MySQL erfordert vor den ersten Start eine Anpassung, um eine Warnung des Scripts wsl-integration.sh zu vermeiden. Sie sorgt dafür, dass das Konto, unter dem die Datenbank läuft, ein Home-Verzeichnis zugewiesen erhält:
sudo usermod -d /var/lib/mysql/ mysql
Je nach Security-Anforderung an die Entwicklungsumgebung führt man dann noch das Sicherheits-Script
sudo mysql_secure_installation
aus. Anschließend startet man MySQL mit
sudo service mysql start
phpMyAdmin installieren
Ein populäres Tool für das Management der Datenbank ist phpMyAdmin. Dieses installiert man nebst einigen von ihm benötigten PHP-Modulen mit diesem Befehl:
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
Anschließend sollte sich das Tool über
http://localhost/phpmyadmin
starten lassen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Version 1.0 mit neuen Features: Windows Subsystem for Linux kommt künftig aus dem Store
- Windows Subsystem für Linux über die Kommandozeile (wsl.exe) installieren
- GUI-Anwendungen ausführen im Windows Subsystem für Linux (WSL)
- Distributionen im Subsystem für Linux (WSL) duplizieren, verschieben und exportieren
- Veeam Backup & Replication v11: Continuous Data Protection, gehärtetes Repository, erweitertes Instant Recovery
Weitere Links