El nostre blog

Desenvolupament Laravel en Windows

By anfibic / 08 December 2023
Desenvolupament Laravel en Windows
  1. Home »
  2. Blog »
  3. Desenvolupament en Windows

Durant aquest pont em vaig decidir a configurar un ordinador Windows que tinc a casa per poder desenvolupar-hi en els meus temps lliures, per tenir un entorn separat de l'ordinador de treball. Feia mil anys i mig que no configurava un Windows per desenvolupar, i vaig decidir utilitzar la IA de GPT perquè em guies en el procés. Sent un usuari de Mac des de fa anys, i que la relació amb Windows s'havia reduït a una relació de multimèdia, he de dir que el procés ha resultat ser bastant fluid, van aparèixer un parell de problemes, que van tenir una solució senzilla, i en un parell d'hores l'equip estava llest per desenvolupar. Les diferències entre els dos sistemes operatius són mínimes avui dia, i m'ha sorprès molt gratament la integració de virtualització que porta Windows per defecte, una comanda i descarregues i instal·les un servidor Ubuntu,...

Configurar un entorn de desenvolupament pot ser un desafiament, especialment en canviar de sistema operatiu. En aquesta publicació, et guiaré a través del procés de configurar un entorn de desenvolupament Laravel amb Docker a Windows, ressaltant els problemes trobats i les seves solucions.

Començant

1. Instal·lar Docker a Windows

Comencem amb la instal·lació de Docker Desktop a Windows, una plataforma essencial per executar aplicacions en contenidors.

Problema: Errors amb WSL 2

Ens vam trobar amb errors relacionats amb la configuració de WSL 2 (Windows Subsystem for Linux).

Solució:

Activem la característica de Plataforma de Màquina Virtual de Windows i assegurem que la virtualització estigués habilitada a la BIOS.

2. Configuració de PHP i Composer

Per crear un projecte Laravel, necessitem PHP i Composer, un gestor de dependències de PHP.

Problema: Extensions de PHP no Carreguen

PHP va mostrar errors per la falta d'extensions com curl, mbstring i zip.

Solució:

Revisem i editem l'arxiu php.ini per assegurar-nos que la extension_dir estigués correctament configurada i que les extensions necessàries estiguessin habilitades.

3. Creació del Projecte Laravel

Amb PHP i Composer llestos, creem un nou projecte Laravel.

Dockeritzant l'Aplicació Laravel

1. Creació de l'Arxiu Docker Compose

Al directori del projecte Laravel, creem un docker-compose.yml. Aquest arxiu defineix els serveis: PHP, Nginx i MySQL.

Aquest és un exemple de l'arxiu que em va proposar GPT4:

version: '3.8'

services:
  app:
    image: php:8.1-fpm
    container_name: laravel_app
    volumes:
      - ./:/var/www
    working_dir: /var/www
    networks:
      - laravel

  webserver:
    image: nginx:alpine
    container_name: laravel_webserver
    ports:
      - "8080:80"
    volumes:
      - ./:/var/www
      - ./docker/nginx:/etc/nginx/conf.d
    depends_on:
      - app
    networks:
      - laravel

  db:
    image: mysql:5.7
    container_name: laravel_db
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: rootpassword
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - laravel

networks:
  laravel:
    driver: bridge

volumes:
  dbdata:
    driver: local

2. Configuració de Nginx i MySQL

Establim Nginx com a servidor web i MySQL per a la base de dades.

  • Configurem app.conf per a Nginx, assegurant-nos que el servidor pugui manejar sol·licituds per a l'aplicació Laravel.

Aquest és un exemple de com va quedar configurat:

server {
    listen 80;
    server_name linter-windows-test.test;
    index index.php index.html;
    root /var/www/public;

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

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Problema: Connexió al Servidor Local

Inicialment, hi va haver problemes per connectar amb el servidor local a través del domini personalitzat http://linter-windows-test.test.

Solució:

Actualitzem l'arxiu d'hosts de Windows (C:\Windows\System32\drivers\etc\hosts) afegint una entrada per redirigir linter-windows-test.test a 127.0.0.1. Això permet que el navegador trobi i carregui l'aplicació des de l'entorn Docker local.

Eines Addicionals

Per a la gestió de bases de dades, recomanem eines com MySQL Workbench (descarrega aquí) i DBeaver (descarrega aquí), ambdues compatibles amb Windows i capaces de connectar-se a MySQL a Docker.

Conclusió

Al final, vam aconseguir configurar un entorn de desenvolupament Laravel funcional a Windows usant Docker, superant els desafiaments tècnics comuns pel camí. Aquest entorn ens permet desenvolupar aplicacions Laravel de manera eficient, aprofitant els avantatges de Docker.

Intel·ligència artificial a la Web
Programació

Intel·ligència artificial a la Web

Revolucionant la Interacció Digital L'era digital està presenciant una transformació radical amb la integració de la Intel·ligència Artificial (IA) en el desenvolupament web. Aquesta convergència...
Claus per a un disseny adaptable
Disseny

Claus per a un disseny adaptable

En un món on l'accés a Internet es realitza a través d'una varietat de dispositius, des de smartphones fins a tablets i ordinadors de sobretaula,...
KISS: Simplicitat en el desenvolupament
Programació

KISS: Simplicitat en el desenvolupament

En el dinàmic món del desenvolupament web, la complexitat sovint s'assumeix com un estàndard. No obstant això, hi ha un principi poderós que desafia aquesta...
Tecnologia i filosofia del desenvolupament
El cami de l'artesà

Tecnologia i filosofia del desenvolupament

En l'era de l'avantatge tecnològic ràpid, on cada nova eina i llenguatge de programació promet revolucionar el món digital, és fàcil oblidar que darrere de...
Veure tots els articles de El nostre blog