El nostre blog

Desenvolupament Laravel en Windows

By anfibic / 08 December 2023
Desarrollo Laravel 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.

Herramientas del artesano
El cami de l'artesà

L'Artesà i la seva Caixa d'Eines

La feina d'un artesà sempre ha depès de la selecció acurada de les seves eines. Des dels cisells i martells fins a les serres i...
Personalización de Extranets
Extranets

Personalització d'Extranets

En el món empresarial, cap empresa és igual a una altra. Cada negoci té els seus propis processos, clients i objectius. Per això, quan es...
Extranets vs. Intranets
Extranets

Extranets vs. Intranets

En el món digital actual, els termes extranet i intranet sovint generen confusió, especialment quan es tracta de determinar quina és la millor opció per...
Desafios y Beneficios de tener tu propia extranet
Extranets

Extranets: Beneficis i Reptes

Extranets para Pequeñas Empresas: Beneficios y Desafíos En un mundo cada vez más digitalizado, las pequeñas empresas deben adaptarse rápidamente para mantenerse competitivas. Una herramienta...
Veure tots els articles de El nostre blog
T'ha semblat interessant aquest article?

Contacta anb nosaltres

Comparteix amb nosaltres els teus dubtes, opinions o suggeriments. Som aquí per ajudar-te i per seguir aprenent junts.
Començem. Ompliu el següent formulari.

Usamos cookies de terceros con fines analíticos, en resumen solo usamos las cookies de Google Analytics para poder analizar nuetro tráfico.

Más información