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

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

Configuració de cookies

Solo tenemos una cookie! Utilizamos cookies de terceros con fines analíticos.
Tienes la información de como las utilizamos aqui: https://anfibic.com/es/ley-de-cookies