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

# Instalar PHP, Composer y Node.js con WSL (Windows)

> Guía paso a paso para instalar PHP, Composer y Node.js con WSL 2 en Windows 10/11 y preparar un entorno de desarrollo para Laravel.

## Introducción

Para desarrollar Laravel en Windows, la mejor práctica es usar **WSL (Windows Subsystem for Linux)**. Como puedes usar tal cual la toolchain de Linux, los mismos comandos funcionan igual que en macOS o en el servidor de producción.

En esta guía se explica cómo instalar PHP, Composer y Node.js (mediante nvm) sobre Ubuntu en WSL 2 hasta llegar al punto en que `laravel new` funcione.

<Info>
  Entorno objetivo: Windows 10 (versión 2004 o superior) o Windows 11. Se usa WSL 2.
</Info>

***

## Instalación de WSL

<Steps>
  <Step title="Abre PowerShell como administrador">
    Busca "PowerShell" en el menú de inicio y elige "Ejecutar como administrador".
  </Step>

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

    Con este comando se instalan WSL 2 y Ubuntu (la distribución por defecto). Al terminar, reinicia el PC.
  </Step>

  <Step title="Configura Ubuntu">
    Tras reiniciar, Ubuntu se inicia automáticamente. Configura nombre de usuario y contraseña. Esta contraseña se usa con el comando `sudo`.

    <Warning>
      La contraseña no se muestra en pantalla mientras la escribes. Escríbela con cuidado.
    </Warning>
  </Step>

  <Step title="Actualiza la lista de paquetes">
    En la terminal de Ubuntu, ejecuta lo siguiente.

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

***

## Instalación de PHP

Los repositorios estándar de Ubuntu pueden incluir versiones antiguas de PHP. Instala la versión más reciente usando el PPA `ondrej/php`.

<Steps>
  <Step title="Instala los paquetes necesarios">
    ```bash theme={null}
    sudo apt install -y software-properties-common
    ```
  </Step>

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

  <Step title="Instala PHP 8.3 y las extensiones necesarias">
    Laravel 13 requiere PHP 8.3 o superior.

    ```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 versión">
    ```bash theme={null}
    php --version
    ```

    Si se muestra `PHP 8.3.x` o superior, la instalación es correcta.
  </Step>

  <Step title="(Opcional) Cambiar entre varias versiones">
    Si necesitas varias versiones de PHP, puedes alternarlas con `update-alternatives`.

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

    Aparecerá la lista de versiones instaladas; introduce el número de la versión que quieras usar.
  </Step>
</Steps>

***

## Instalación de Composer

Se instala Composer usando el instalador oficial.

<Steps>
  <Step title="Comprueba los paquetes necesarios">
    ```bash theme={null}
    sudo apt install -y curl php8.3-cli unzip
    ```
  </Step>

  <Step title="Descarga y ejecuta el instalador oficial">
    ```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 versión">
    ```bash theme={null}
    composer --version
    ```
  </Step>

  <Step title="Configura la ruta de la instalación global">
    Añade `~/.composer/vendor/bin` al `PATH` para poder usar paquetes instalados con `composer global require` (como el instalador de Laravel).

    Añade la siguiente línea a `~/.bashrc` (o `~/.zshrc`).

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

    Aplica la configuración.

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

***

## Instalación de nvm

Node.js se instala por usuario mediante nvm (Node Version Manager). Como se puede gestionar sin `sudo`, encaja bien con herramientas de IA o CLIs que usan paquetes npm globales.

<Steps>
  <Step title="Instala nvm">
    El script de instalación más reciente se puede consultar en el [repositorio de GitHub de 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="Añade líneas al archivo de configuración del shell">
    El script de instalación añade automáticamente lo siguiente a `~/.bashrc`. Si no se añade, hazlo 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"
    ```

    Aplica la configuración.

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

    Si usas zsh, añade lo mismo en `~/.zshrc` y aplícalo con `source ~/.zshrc`.
  </Step>

  <Step title="Verifica la instalación">
    ```bash theme={null}
    nvm --version
    ```
  </Step>
</Steps>

***

## Instalación de Node.js

<Steps>
  <Step title="Instala la versión LTS">
    ```bash theme={null}
    nvm install --lts
    ```
  </Step>

  <Step title="Establece como predeterminada">
    Para que se use automáticamente también en sesiones de terminal nuevas, establece la versión por defecto.

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

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

***

## Verificar la instalación de Laravel

<Steps>
  <Step title="Instala el instalador de Laravel">
    ```bash theme={null}
    composer global require laravel/installer
    ```
  </Step>

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

    Se inicia una configuración interactiva. Podrás elegir starter kit, autenticación, etc.
  </Step>

  <Step title="Arranca el servidor de desarrollo">
    ```bash theme={null}
    cd my-app
    php artisan serve
    ```

    Accede en el navegador a `http://localhost:8000`; si aparece la página de bienvenida de Laravel, ya está listo.

    <Tip>
      Si no puedes acceder a `localhost` desde el navegador de Windows estando en WSL, intenta arrancarlo con `php artisan serve --host=0.0.0.0`.
    </Tip>
  </Step>
</Steps>

***

## Extra: herramientas para mejorar la eficiencia del desarrollo

### Windows Terminal

Con Windows Terminal puedes gestionar de forma unificada WSL, PowerShell y Command Prompt en varias pestañas. Se instala gratis desde Microsoft Store.

* Operar varios shells en paralelo mediante pestañas
* Se puede establecer el shell de Ubuntu como predeterminado
* Fuente y colores libremente personalizables

### Extensión Remote - WSL de VS Code

Con la extensión [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl) de VS Code puedes editar archivos dentro de WSL directamente desde el VS Code de Windows.

```bash theme={null}
# Abrir el proyecto en VS Code desde la terminal de WSL
code .
```

En la primera ejecución se instala automáticamente el VS Code Server dentro de WSL. A partir de ahí, puedes trabajar con una experiencia equivalente a la nativa.


## Related topics

- [Instalar PHP, Composer y Node.js con Homebrew (macOS)](/es/blog/mac-setup.md)
- [Empaquetar Copilot CLI](/es/packages/laravel-copilot-sdk/bundle-cli.md)
- [Laravel Boost Custom Agent for PhpStorm with GitHub Copilot](/es/packages/laravel-boost-phpstorm-copilot.md)
- [Laravel Reverb](/es/reverb.md)
- [Instalación](/es/installation.md)
