> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# PHP, Composer und Node.js mit WSL installieren (Windows)

> Schritt-für-Schritt-Anleitung zur Installation von PHP, Composer und Node.js mit WSL 2 unter Windows 10/11 und zur Einrichtung der Laravel-Entwicklungsumgebung.

## Einleitung

Für die Laravel-Entwicklung unter Windows ist der Einsatz von **WSL (Windows Subsystem for Linux)** die Best Practice. Sie nutzen die Linux-Toolchain unmittelbar; dieselben Kommandos wie auf macOS oder Produktionsservern stehen bereit.

Dieser Leitfaden erklärt, wie Sie unter Ubuntu auf WSL 2 PHP, Composer und Node.js (via nvm) installieren, bis `laravel new` läuft.

<Info>
  Zielumgebung: Windows 10 (ab Version 2004) oder Windows 11. Wir verwenden WSL 2.
</Info>

***

## WSL installieren

<Steps>
  <Step title="PowerShell als Administrator öffnen">
    Suchen Sie im Startmenü nach „PowerShell" und wählen Sie „Als Administrator ausführen".
  </Step>

  <Step title="WSL und Ubuntu installieren">
    ```powershell theme={null}
    wsl --install
    ```

    Damit werden WSL 2 und Ubuntu (die Default-Distribution) installiert. Starten Sie danach den PC neu.
  </Step>

  <Step title="Ubuntu einrichten">
    Nach dem Neustart startet Ubuntu automatisch. Legen Sie Benutzername und Passwort fest. Dieses Passwort wird für `sudo` verwendet.

    <Warning>
      Das Passwort wird während der Eingabe nicht angezeigt. Achten Sie auf korrekte Eingabe.
    </Warning>
  </Step>

  <Step title="Paketliste aktualisieren">
    Führen Sie im Ubuntu-Terminal aus:

    ```bash theme={null}
    sudo apt update && sudo apt upgrade -y
    ```
  </Step>
</Steps>

***

## PHP installieren

Das PHP in den Ubuntu-Standard-Repositories ist häufig veraltet. Verwenden Sie das PPA `ondrej/php` für die neueste Version.

<Steps>
  <Step title="Notwendige Pakete installieren">
    ```bash theme={null}
    sudo apt install -y software-properties-common
    ```
  </Step>

  <Step title="PPA ondrej/php hinzufügen">
    ```bash theme={null}
    sudo add-apt-repository ppa:ondrej/php
    sudo apt update
    ```
  </Step>

  <Step title="PHP 8.3 und benötigte Extensions installieren">
    Laravel 13 setzt PHP 8.3 oder höher voraus.

    ```bash theme={null}
    sudo apt install -y php8.3 php8.3-cli php8.3-mbstring php8.3-xml php8.3-curl php8.3-zip php8.3-sqlite3 php8.3-mysql
    ```
  </Step>

  <Step title="Version prüfen">
    ```bash theme={null}
    php --version
    ```

    Erscheint `PHP 8.3.x` oder höher, war die Installation erfolgreich.
  </Step>

  <Step title="(Optional) Zwischen mehreren Versionen wechseln">
    Wenn Sie mehrere PHP-Versionen benötigen, wechseln Sie diese mit `update-alternatives`.

    ```bash theme={null}
    sudo update-alternatives --config php
    ```

    Es wird eine Liste installierter Versionen angezeigt; geben Sie die Nummer der zu verwendenden Version ein.
  </Step>
</Steps>

***

## Composer installieren

Composer installieren Sie mit dem offiziellen Installer.

<Steps>
  <Step title="Benötigte Pakete prüfen">
    ```bash theme={null}
    sudo apt install -y curl php8.3-cli unzip
    ```
  </Step>

  <Step title="Offiziellen Installer laden und ausführen">
    ```bash theme={null}
    curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
    sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
    ```
  </Step>

  <Step title="Version prüfen">
    ```bash theme={null}
    composer --version
    ```
  </Step>

  <Step title="Pfad für globale Installationen einrichten">
    Damit Pakete, die Sie per `composer global require` installieren (z. B. der Laravel-Installer), nutzbar sind, ergänzen Sie `~/.composer/vendor/bin` in `PATH`.

    Fügen Sie in `~/.bashrc` (oder `~/.zshrc`) Folgendes hinzu:

    ```bash theme={null}
    export PATH="$HOME/.composer/vendor/bin:$PATH"
    ```

    Konfiguration übernehmen:

    ```bash theme={null}
    source ~/.bashrc
    ```
  </Step>
</Steps>

***

## nvm installieren

Node.js wird pro Benutzer per nvm (Node Version Manager) installiert. Ohne `sudo` verwaltbar und ideal für KI-Tools und CLIs, die globale npm-Pakete voraussetzen.

<Steps>
  <Step title="nvm installieren">
    Das aktuelle Installations-Skript finden Sie im [nvm-GitHub-Repository](https://github.com/nvm-sh/nvm).

    ```bash theme={null}
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
    ```
  </Step>

  <Step title="Shell-Konfiguration ergänzen">
    Das Installations-Skript ergänzt in `~/.bashrc` automatisch Folgendes. Falls nicht, tragen Sie es manuell ein.

    ```bash theme={null}
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
    ```

    Übernehmen Sie die Konfiguration:

    ```bash theme={null}
    source ~/.bashrc
    ```

    Bei zsh tragen Sie das Gleiche in `~/.zshrc` ein und übernehmen es per `source ~/.zshrc`.
  </Step>

  <Step title="Installation prüfen">
    ```bash theme={null}
    nvm --version
    ```
  </Step>
</Steps>

***

## Node.js installieren

<Steps>
  <Step title="LTS-Version installieren">
    ```bash theme={null}
    nvm install --lts
    ```
  </Step>

  <Step title="Als Default setzen">
    Damit die Version auch in neuen Terminal-Sessions verwendet wird, setzen Sie die Default-Version.

    ```bash theme={null}
    nvm alias default node
    ```
  </Step>

  <Step title="Version prüfen">
    ```bash theme={null}
    node --version
    npm --version
    ```
  </Step>
</Steps>

***

## Laravel-Installation prüfen

<Steps>
  <Step title="Laravel-Installer einrichten">
    ```bash theme={null}
    composer global require laravel/installer
    ```
  </Step>

  <Step title="Neues Projekt anlegen">
    ```bash theme={null}
    laravel new my-app
    ```

    Das interaktive Setup startet. Sie können Starterkits und Authentifizierungsoptionen wählen.
  </Step>

  <Step title="Entwicklungsserver starten">
    ```bash theme={null}
    cd my-app
    php artisan serve
    ```

    Öffnen Sie im Browser `http://localhost:8000`. Erscheint die Laravel-Welcome-Seite, ist alles bereit.

    <Tip>
      Falls Sie aus WSL heraus im Windows-Browser nicht auf `localhost` zugreifen können, starten Sie mit `php artisan serve --host=0.0.0.0`.
    </Tip>
  </Step>
</Steps>

***

## Zusatz: Werkzeuge zur Produktivitätssteigerung

### Windows Terminal

Mit Windows Terminal verwalten Sie WSL, PowerShell und die Eingabeaufforderung in mehreren Tabs. Kostenlos aus dem Microsoft Store zu beziehen.

* parallele Nutzung mehrerer Shells über Tabs
* Ubuntu-Shell als Default festlegbar
* Schriftarten und Farben frei anpassbar

### VS-Code-Erweiterung Remote - WSL

Mit der [Remote-WSL-Erweiterung](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl) für VS Code bearbeiten Sie Dateien im WSL direkt aus dem Windows-VS-Code.

```bash theme={null}
# Projekt aus dem WSL-Terminal in VS Code öffnen
code .
```

Beim ersten Aufruf wird der VS-Code-Server automatisch im WSL installiert. Danach fühlt sich die Entwicklung nativ an.


## Related topics

- [PHP, Composer und Node.js mit Homebrew installieren (macOS)](/de/blog/mac-setup.md)
- [Laravel Sail](/de/sail.md)
- [Vue.js – Einstieg mit Inertia × Laravel](/de/blog/vue-introduction.md)
- [Laravel Prompts](/de/prompts.md)
- [Laravel Reverb](/de/reverb.md)
