Guida Completa: Installazione Laravel 12 E Filament Con Docker E Wsl2 Su Windows 11

Laravel 12 e Filament su Windows 11 : in questo post vedremo passo-passo la procedura aggiornata e testata per configurare un ambiente di sviluppo Laravel 12 e Filament su Windows 11 utilizzando Docker Desktop con WSL2. L’ambiente include PHP 8.2, Nginx, MySQL, phpMyAdmin, Xdebug (debug remoto) e il pannello amministrativo Filament.


βœ… Passaggio 1: Installare e configurare WSL2 e Docker Desktop

  • Installa WSL2 su Windows 11 da PowerShell:
wsl --install
  • Riavvia il PC quando richiesto e configura WSL con username e password al primo accesso.
  • Scarica e installa Docker Desktop per Windows dal sito ufficiale: https://www.docker.com/products/docker-desktop
  • Nelle impostazioni di Docker, abilita l’integrazione con WSL2.

βœ… Passaggio 2: Crea la cartella del progetto in WSL2 (Ubuntu)

Da terminale WSL, crea la cartella di progetto:

mkdir ~/laravel-project
cd ~/laravel-project

βœ… Passaggio 3: Docker Compose e configurazioni complete

Crea i seguenti file nella directory ~/laravel-project:

πŸ“Œ docker-compose.yml


services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./:/var/www/html:consistent
      - ./php.ini:/usr/local/etc/php/conf.d/99-overrides.ini
      - ./xdebug.ini:/usr/local/etc/php/conf.d/99-xdebug.ini
    depends_on:
      - db
    networks:
      - laravel

  webserver:
    image: nginx:stable-alpine
    ports:
      - "8080:80"
    volumes:
      - ./:/var/www/html:ro
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - app
    networks:
      - laravel

  db:
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravel
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - laravel

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8081:80"
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
    networks:
      - laravel

networks:
  laravel:
    driver: bridge

volumes:
  dbdata:

πŸ“Œ Dockerfile

FROM php:8.2-fpm

RUN apt-get update && apt-get install -y git unzip zip libicu-dev libzip-dev \
    && docker-php-ext-install pdo_mysql intl zip bcmath opcache \
    && pecl install xdebug \
    && docker-php-ext-enable xdebug \
    && rm -rf /var/lib/apt/lists/*
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html

πŸ“Œ nginx.conf

server {
    listen 80;
    server_name localhost;
    root /var/www/html/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass app:9000;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

πŸ“Œ php.ini

display_errors = On
memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M
opcache.enable = 1
opcache.memory_consumption = 128

πŸ“Œ xdebug.ini

xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_host = host.docker.internal
xdebug.client_port = 9003
xdebug.idekey = laravel

βœ… Passaggio 4: Avvia i container Docker

Da terminale WSL esegui:

docker-compose up -d --build

βœ… Passaggio 5: Crea un progetto Laravel 12 da Composer nel container

docker-compose exec app composer create-project laravel/laravel temp-laravel
docker-compose exec app bash -c "mv temp-laravel/{.,}* ./ 2>/dev/null && rm -rf temp-laravel"

βœ… Passaggio 6: Imposta i permessi e configura Laravel

docker-compose exec app chmod -R 775 storage bootstrap/cache
docker-compose exec app chown -R www-data:www-data storage bootstrap/cache
docker-compose exec app php artisan key:generate

Aggiorna il file .env per il database:

DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel

βœ… Passaggio 7: Installa Filament Admin Panel

docker-compose exec app composer require filament/filament:"^3.2" -W
docker-compose exec app php artisan filament:install --panels
docker-compose exec app php artisan make:filament-user

Accedi al pannello admin Filament:


πŸš€ Principali comandi Docker per lavorare con Laravel (Artisan)

Ecco i comandi piΓΉ utili per lavorare rapidamente col tuo ambiente Laravel + Docker:

πŸ“Œ Accedere al container PHP via bash:

docker-compose exec app bash

πŸ“Œ Eseguire comandi Artisan direttamente senza entrare nel container:

docker-compose exec app php artisan migrate
docker-compose exec app php artisan optimize
docker-compose exec app php artisan make:model NomeModello -mcr
docker-compose exec app php artisan config:cache
docker-compose exec app php artisan route:list
docker-compose exec app composer install
docker-compose exec app composer update

πŸ“Œ Controllare lo stato dei container Docker:

docker-compose ps

πŸ“Œ Riavviare tutti i container:

docker-compose restart

πŸ“Œ Vedere i log dei container:

docker-compose logs -f

πŸ“Œ Fermare e rimuovere i container:

docker-compose down

🎯 Conclusioni

Ora hai un ambiente completo, veloce, ben configurato per sviluppare applicazioni Laravel 12 su Windows 11 con Docker e WSL2. Hai Xdebug configurato per il debug remoto, Filament come admin panel giΓ  pronto, e MySQL gestito comodamente tramite phpMyAdmin.

Buon lavoro e buon coding! πŸš€βœ¨

Laravel 12 e Filament – Vantaggi di lavorare con questo stack tecnologico

Lavorare con Laravel 12 e Filament offre numerosi vantaggi, rispetto a Laravel puro, che lo rendono un’ottima scelta per sviluppatori che cercano un modo efficace di gestire le aree amministrative delle loro applicazioni. Filament, grazie alla sua stretta integrazione con Laravel, permette un’incredibile flessibilitΓ  e velocitΓ  nello sviluppo di interfacce amministrative. Ecco alcuni dei principali vantaggi:

1. FacilitΓ  di Utilizzo: Filament Γ¨ progettato per essere altamente intuitivo, riducendo la curva di apprendimento per chi Γ¨ giΓ  familiare con Laravel. Con una sintassi simile e un pannello di amministrazione user-friendly, puoi concentrarti direttamente sulle funzionalitΓ  specifiche della tua applicazione piuttosto che perdere tempo nella configurazione di strumenti complessi.

2. EspandibilitΓ : Con Filament, puoi facilmente estendere le funzionalitΓ  del pannello amministrativo. Grazie ai suoi “Widgets” e “Resources”, Γ¨ possibile aggiungere nuove pagine, gestire risorse personalizzate e integrare moduli secondo le tue esigenze specifiche. Questo rende Filament estremamente versatile e adattabile a qualsiasi progetto.

3. Performance Ottimizzata: Filament Γ¨ costruito con un approccio “front-end first” che assicura che le interazioni e le visualizzazioni siano rapide e reattive. Sfruttando il meglio di Livewire e Alpine.js, le applicazioni amministrative costruite con Filament saranno sempre veloci e performanti.

4. Sicurezza Integrata: Grazie alla stretta integrazione con Laravel, Filament beneficia di tutte le funzionalitΓ  di sicurezza offerte dal framework, come autenticazione e autorizzazione. Puoi definire facilmente i permessi di accesso e garantire che i dati siano sempre protetti.

5. Community e Supporto: Filament Γ¨ supportato da una comunitΓ  crescente di sviluppatori e dispone di una documentazione ben scritta e costantemente aggiornata. Questo significa che avrai sempre a disposizione risorse e supporto per risolvere eventuali problemi o per trovare nuove idee per il tuo progetto.

Integrando Filament nel tuo stack Laravel, puoi creare rapidamente potenti soluzioni amministrative che sfruttano appieno le potenzialitΓ  di Laravel e Docker, semplificando al contempo la gestione e il mantenimento della tua applicazione online.