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

# Installare PHP, Composer e Node.js con WSL (Windows)

> Guida passo passo per installare PHP, Composer e Node.js con WSL 2 su Windows 10/11 e configurare l'ambiente di sviluppo Laravel.

## Introduzione

Per sviluppare Laravel su Windows la best practice è usare **WSL (Windows Subsystem for Linux)**. Puoi usare direttamente le toolchain Linux e i comandi sono gli stessi che usi su macOS e sui server di produzione.

Questa guida spiega come installare PHP, Composer e Node.js (via nvm) su Ubuntu in WSL 2 fino ad avere `laravel new` funzionante.

<Info>
  Ambienti di riferimento: Windows 10 (versione 2004 o superiore) o Windows 11. Si usa WSL 2.
</Info>

***

## Installazione di WSL

<Steps>
  <Step title="Apri PowerShell come amministratore">
    Nel menu Start cerca "PowerShell" e seleziona "Esegui come amministratore".
  </Step>

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

    Il comando installa WSL 2 e Ubuntu (distribuzione predefinita). Al termine, riavvia il PC.
  </Step>

  <Step title="Configura Ubuntu">
    Dopo il riavvio, Ubuntu si avvia automaticamente. Imposta nome utente e password. Questa password verrà usata con il comando `sudo`.

    <Warning>
      La password non viene mostrata a schermo mentre la digiti. Digitala con attenzione.
    </Warning>
  </Step>

  <Step title="Aggiorna l'elenco dei pacchetti">
    Nel terminale Ubuntu esegui:

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

***

## Installazione di PHP

Il PHP nei repository standard di Ubuntu può includere versioni datate. Usa il PPA `ondrej/php` per installare l'ultima versione.

<Steps>
  <Step title="Installa i pacchetti richiesti">
    ```bash theme={null}
    sudo apt install -y software-properties-common
    ```
  </Step>

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

  <Step title="Installa PHP 8.3 e le estensioni necessarie">
    Laravel 13 richiede PHP 8.3 o superiore.

    ```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="Verifica la versione">
    ```bash theme={null}
    php --version
    ```

    Se viene mostrato `PHP 8.3.x` o superiore, è tutto ok.
  </Step>

  <Step title="(Facoltativo) Cambiare tra più versioni">
    Se ti servono più versioni di PHP, puoi cambiarle con `update-alternatives`.

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

    Viene mostrato l'elenco delle versioni installate: inserisci il numero della versione da usare.
  </Step>
</Steps>

***

## Installazione di Composer

Installa Composer tramite l'installer ufficiale.

<Steps>
  <Step title="Verifica i pacchetti richiesti">
    ```bash theme={null}
    sudo apt install -y curl php8.3-cli unzip
    ```
  </Step>

  <Step title="Scarica ed esegui l'installer ufficiale">
    ```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="Verifica la versione">
    ```bash theme={null}
    composer --version
    ```
  </Step>

  <Step title="Configura il PATH degli install globali">
    Aggiungi `~/.composer/vendor/bin` al `PATH` per poter usare i pacchetti installati con `composer global require` (come l'installer di Laravel).

    Aggiungi in `~/.bashrc` (o `~/.zshrc`):

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

    Applica la configurazione.

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

***

## Installazione di nvm

Installa Node.js a livello utente con nvm (Node Version Manager). Non richiede `sudo`, quindi si integra bene con strumenti AI e CLI che usano pacchetti npm globali.

<Steps>
  <Step title="Installa nvm">
    Lo script di installazione più recente è disponibile nel [repository GitHub di nvm](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="Aggiungi le righe alla configurazione della shell">
    Lo script di installazione aggiunge automaticamente le righe seguenti a `~/.bashrc`. Se non le trovi, aggiungile manualmente.

    ```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"
    ```

    Applica la configurazione.

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

    Se usi zsh, aggiungi le stesse righe a `~/.zshrc` e applicale con `source ~/.zshrc`.
  </Step>

  <Step title="Verifica l'installazione">
    ```bash theme={null}
    nvm --version
    ```
  </Step>
</Steps>

***

## Installazione di Node.js

<Steps>
  <Step title="Installa la versione LTS">
    ```bash theme={null}
    nvm install --lts
    ```
  </Step>

  <Step title="Impostala come predefinita">
    Imposta la versione predefinita in modo che venga usata automaticamente anche nelle nuove sessioni del terminale.

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

  <Step title="Verifica le versioni">
    ```bash theme={null}
    node --version
    npm --version
    ```
  </Step>
</Steps>

***

## Verifica dell'installazione di Laravel

<Steps>
  <Step title="Installa l'installer di Laravel">
    ```bash theme={null}
    composer global require laravel/installer
    ```
  </Step>

  <Step title="Crea un nuovo progetto">
    ```bash theme={null}
    laravel new my-app
    ```

    Parte il setup interattivo. Puoi selezionare lo starter kit, l'autenticazione e altre opzioni.
  </Step>

  <Step title="Avvia il server di sviluppo">
    ```bash theme={null}
    cd my-app
    php artisan serve
    ```

    Apri `http://localhost:8000` nel browser: se vedi la pagina di benvenuto di Laravel, hai finito.

    <Tip>
      Se non riesci ad accedere a `localhost` dal browser Windows verso WSL, prova ad avviare con `php artisan serve --host=0.0.0.0`.
    </Tip>
  </Step>
</Steps>

***

## Extra: strumenti per aumentare l'efficienza dello sviluppo

### Windows Terminal

Con Windows Terminal puoi gestire in un unico posto, in schede, WSL, PowerShell e Prompt dei comandi. Puoi installarlo gratuitamente dal Microsoft Store.

* Più shell in parallelo tramite schede
* Puoi impostare la shell Ubuntu come predefinita
* Personalizzazione libera di font e colori

### Estensione VS Code Remote - WSL

Con l'estensione [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl) di VS Code puoi modificare i file all'interno di WSL direttamente da VS Code su Windows.

```bash theme={null}
# Apri il progetto in VS Code dal terminale WSL
code .
```

Alla prima esecuzione il server di VS Code viene installato automaticamente in WSL. Da quel momento sviluppi con un'esperienza equivalente al nativo.


## Related topics

- [Installare PHP, Composer e Node.js con Homebrew (macOS)](/it/blog/mac-setup.md)
- [Laravel Boost Custom Agent for PhpStorm with GitHub Copilot](/it/packages/laravel-boost-phpstorm-copilot.md)
- [Includere Copilot CLI nel bundle](/it/packages/laravel-copilot-sdk/bundle-cli.md)
- [Laravel Sail](/it/sail.md)
- [Installazione](/it/installation.md)
