Windows Subsystem für Linux: Kali mit nginx, PHP 7.3 und MariaDB

Datum

Gleich vorweg: Dies ist nicht als operatives Produktivsystem vorgesehen. Es ist eher als Testsystem oder ggf. Entwicklungsumgebung gedacht.

Unter Windows 10 (Build 1903 und höher) kann man das so genannte Windows Subsystem für Linux installieren. Damit lassen sich diverse Linux-Distributionen als App betreiben:

  • Debian
  • Kali
  • OpenSUSE Leap
  • SUSE Enterprise Server
  • ubuntu

Dieser Artikel behandelt konkret Kali. Die Vorgehensweise ist aber unter Debian und ubuntu dieselbe.

Installation des Features „Windows Subsystem für Linux“

Um das Featur installieren zu können, muss zunächst Windows 10 Build 1903 (oder höher) installiert sein. Wer eine ältere Windows-Version fährt, muss entsprechend aktualisieren.

Als nächstes muss der Entwicklermodus bei den Windows-Updates eingeschaltet werden.

Anschließend, nach einem Neustart, kann das Feature installiert werden.

Installation von Kali

Nachdem das Feature installiert wurde, muss man noch einmal Windows neustarten und kann dann im Microsoft Store die entsprechenden Apps installieren (in diesem Fall Kali).

Nach erfolgreicher Installation kann man die App starten und wird nach einem Passwort gefragt, welches für den Hauptbenutzer des Systems verwendet werden soll. Es muss nicht mit dem des Windows-Kontos übereinstimmen, und wird nur dann benötigt, wenn man sudo verwendet oder sich per SSH gegen dieses Subsystem verbindet.

Jetzt ist das Grundsystem von Kali schon fertig. Es müssen aber natürlich noch die Dienste installiert werden. Vorab lohnt es sich jedoch außerdem das System einmal zu aktualisieren.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Installation der Dienste

sudo apt install nginx php7.3 php7.3-fpm mariadb-server

Die Dienste starten nicht automatisch. Ebenso wenig, wie ein etwaiger SSH-Server, den man auch erst händisch installieren muss, sofern man ihn benötigt. Deshalb habe ich ein Skript im Home-Verzeichnis angelegt: startweb, mit dem ich schnell die Dienste starten kann, sofern ich sie brauche. Da es sich nur um eine Test- bzw. Entwicklungsumgebung handelt, brauche ich die Dienste nicht immer.

#!/bin/bash
sudo service mysql restart
sudo mkdir /run/php >/dev/null 2>&1
sudo service php7.3-fpm restart
sudo service nginx restart

Die Erstellung des Ordners /run/php bedient einen Bug im Subsystem, der bei bestimmten Diensten verhindert, dass Unix-Socket-Dateien erstellt werden. Durch manuelles Anlegen des entspr. Ordners wirkt man dem entgegen.

Das Skript muss natürlich noch ausführbar gemacht werden:

chmod +x startweb

Dann kann es entsprechend aufgerufen werden:

./startweb

Jetzt muss nur noch die nginx-Konfiguration angepasst werden. Gehen wir von /etc/nginx/sites-enabled/default aus, so muss die PHP-Sektion etwa so angepasst werden:

        location ~ \.php$ {
                include fastcgi.conf;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        }

Außerdem sollte die Indizierung ggf. durch index.php ergänzt werden:

        index index.php index.html index.htm;

Jetzt kann man nach einem Neustart der Dienste unter /var/www/html seine Webseite ablegen und MariaDB-Datenbanken / -Tabellen anlegen.

Autor
Kategorien Windows 10, Linux

PRTG Map