Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
WSL Debian 12.9 + MariaDB + PHP 8.3 + OpenSSH + Nginx (Dev-Umgebung)
#1
1. WSL2 mit Debian 12.9 installieren
1.1 WSL2 aktivieren (falls noch nicht geschehen)
Öffne die PowerShell als Administrator und führe die folgenden Befehle aus:
wsl --install

Falls WSL bereits installiert ist, stelle sicher, dass die neueste Version von WSL2 verwendet wird:
wsl --update
wsl --set-default-version 2

1.2 Debian 12.9 installieren
Lade Debian über den Microsoft Store oder installiere es direkt per PowerShell:
wsl --install -d Debian

Nach der Installation öffne Debian und erstelle einen Benutzer mit Passwort.

2. System aktualisieren und benötigte Pakete installieren
Führe folgende Befehle im Debian-Terminal aus:
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget unzip nano gnupg2 ca-certificates lsb-release -y


3. NGINX installieren und konfigurieren
3.1 NGINX installieren
sudo apt install nginx -y

3.2 Virtual Host für shopste.com einrichten
Erstelle die Konfigurationsdatei:
sudo nano /etc/nginx/sites-available/shopste.com

Füge folgendes hinzu:
server {
    listen 80;
    server_name shopste.com www.shopste.com;

    root /var/www/shopste.com;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Speichern und schließen:
→ Strg + X, dann Y und Enter
3.3 Verzeichnis für die Webseite erstellen
sudo mkdir -p /var/www/shopste.com
sudo chown -R www-data:www-data /var/www/shopste.com
sudo chmod -R 755 /var/www/shopste.com

3.4 Konfiguration aktivieren und NGINX neu starten
sudo ln -s /etc/nginx/sites-available/shopste.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx


4. MariaDB 11.5 installieren
4.1 MariaDB Repository hinzufügen
sudo apt install software-properties-common -y
sudo add-apt-repository 'deb [arch=amd64] http://ftp.hosteurope.de/mirror/mariadb....1.5/debian bookworm main'

MariaDB GPG-Schlüssel hinzufügen:
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

4.2 MariaDB installieren
sudo apt update
sudo apt install mariadb-server mariadb-client -y

4.3 MariaDB sichern (optional aber empfohlen)
sudo mysql_secure_installation

Folge den Anweisungen:
Setze ein starkes Root-Passwort
Entferne anonyme Benutzer
Deaktiviere Root-Login von außen
Lösche die Test-Datenbank
Lade die Änderungen neu
4.4 Datenbank für shopste.com erstellen
Starte die MariaDB-Konsole:
sudo mysql -u root -p

Führe folgende SQL-Befehle aus (ersetze DEIN_PASSWORT mit einem sicheren Passwort):
CREATE DATABASE shopste_db;
CREATE USER 'shopste_user'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT';
GRANT ALL PRIVILEGES ON shopste_db.* TO 'shopste_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;


5. PHP 8.3 installieren
5.1 PHP 8.3 Repository hinzufügen
sudo apt install -y apt-transport-https lsb-release ca-certificates curl
sudo curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

5.2 PHP 8.3 und benötigte Module installieren
sudo apt update
sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-cli php8.3-curl php8.3-mbstring php8.3-xml php8.3-zip -y

5.3 PHP-Dienst neu starten
sudo systemctl restart php8.3-fpm


6. Testen
6.1 Test-HTML-Datei erstellen
echo "<h1>shopste.com ist online!</h1>" | sudo tee /var/www/shopste.com/index.html

6.2 Falls PHP benötigt wird, erstelle eine PHP-Testdatei
echo "<?php phpinfo(); ?>" | sudo tee /var/www/shopste.com/info.php

6.3 NGINX neu starten
sudo systemctl restart nginx

6.4 Testen im Browser
Öffne in Windows den Browser und rufe auf:
http://localhost/info.php
http://localhost/
Falls du WSL2 mit einer eigenen Domain testen möchtest, füge die IP von WSL2 zu C:\Windows\System32\drivers\etc\hosts hinzu:
127.0.0.1 shopste.com www.shopste.com

Jetzt kannst du im Browser http://shopste.com aufrufen.

7. Automatischer Start von Diensten sicherstellen
Damit NGINX und MariaDB beim Start von WSL2 automatisch starten:
sudo systemctl enable nginx
sudo systemctl enable mariadb
sudo systemctl enable php8.3-fpm


Damit ist Debian 12.9 mit PHP 8.3, NGINX (Virtual Hosting für shopste.com) und MariaDB 11.5 unter WSL2 eingerichtet. ?
Hier ist eine Anleitung zur Installation und Konfiguration von OpenSSH-Server unter WSL2 mit Debian 12.9.

1. OpenSSH-Server installieren
Öffne das WSL2-Terminal (Debian) und führe aus:
sudo apt update && sudo apt install openssh-server -y


2. OpenSSH-Server konfigurieren
Öffne die Konfigurationsdatei mit nano:
sudo nano /etc/ssh/sshd_config

Wichtige Einstellungen anpassen:
Ändere bzw. prüfe folgende Zeilen (falls nicht vorhanden, hinzufügen oder anpassen):
Port 22                    # Oder einen anderen Port (z. B. 2222)
AddressFamily inet          # IPv4 erzwingen (optional)
PermitRootLogin no          # Root-Login verbieten
PasswordAuthentication yes  # Passwort-Login erlauben (falls gewünscht)
PubkeyAuthentication yes    # Schlüssel-Login aktivieren
AllowUsers deinbenutzer    # Erlaubt nur bestimmten Benutzern SSH-Zugriff

Speichern:
Drücke Strg + X, dann Y und Enter.

3. OpenSSH-Server starten und aktivieren
Starte den OpenSSH-Server:
sudo systemctl start ssh

Falls du möchtest, dass der SSH-Server bei jedem Start von WSL2 läuft:
sudo systemctl enable ssh

Prüfe, ob der Dienst läuft:
sudo systemctl status ssh


4. SSH-Zugang testen
Finde deine WSL2-IP heraus:
ip a | grep eth0

Beispielausgabe:
inet 172.20.5.3/20 brd 172.20.15.255 scope global eth0

Verbinde dich nun von Windows aus mit:
ssh [email protected]

Falls du einen anderen Port als 22 benutzt hast:
ssh -p 2222 [email protected]


5. Zugriff über localhost ermöglichen (Windows-Host auf WSL2)
WSL2-Netzwerk ist isoliert, aber du kannst den SSH-Port an Windows weiterleiten. Öffne die PowerShell als Administrator und führe aus:
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=22 connectaddress=172.20.5.3 connectport=22

Jetzt kannst du dich unter Windows mit ssh deinbenutzer@localhost verbinden.

6. Optional: SSH-Schlüsselbasierte Authentifizierung einrichten
Falls du statt Passwort-Login SSH-Schlüssel verwenden möchtest:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Füge dort deinen öffentlichen SSH-Schlüssel ein (z. B. von id_rsa.pub).
Speichern und Berechtigungen setzen:
chmod 600 ~/.ssh/authorized_keys
sudo systemctl restart ssh

Nun kannst du dich ohne Passwort mit SSH-Schlüssel verbinden. ?

Das war’s! Jetzt läuft dein OpenSSH-Server in WSL2 (Debian 12.9) und ist von Windows aus erreichbar. ?
Webserver Erreichbar halten

powershell.ps1 als Windows Startaufgabe einstellen

HTTPS:// =  443

$wsl_ip = wsl hostname -I
netsh interface portproxy reset
netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=443 connectaddress=$wsl_ip connectport=443

HTTP:// = 80

$wsl_ip = wsl hostname -I
netsh interface portproxy reset
netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=80 connectaddress=$wsl_ip connectport=80
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste