libro / blog / entorno-php-xampp-docker

// entorno

Cómo preparar tu entorno de desarrollo PHP: XAMPP vs Docker

Gustavo Arias8 min de lectura

TL;DR Si estás empezando, instala XAMPP: en diez minutos tienes Apache, PHP y MySQL funcionando. Si trabajas en equipo o quieres que tu entorno sea idéntico al servidor, usa Docker con un docker-compose.yml. En ambos casos, activa la visualización de errores solo en desarrollo.

Antes de escribir tu primera línea de PHP necesitas un lugar donde ejecutarla. A diferencia de HTML o JavaScript, que el navegador entiende por sí solo, PHP necesita un servidor. En el libro PHP desde cero hasta experto este es el primer paso práctico, y conviene darlo bien: un entorno mal configurado es la causa número uno de la frustración de los principiantes.

Qué necesitas para programar en PHP

Hay dos formas habituales de tener las tres primeras piezas: un paquete todo en uno como XAMPP, o contenedores con Docker.

Opción 1: XAMPP paso a paso

  1. Descarga XAMPP desde apachefriends.org y elige la versión con el PHP más reciente.
  2. Instálalo con las opciones por defecto (en Windows, en C:\xampp).
  3. Abre el panel de control y pulsa Start en Apache y en MySQL.
  4. Crea la carpeta C:\xampp\htdocs\mi-proyecto y dentro un archivo index.php.
  5. Abre http://localhost/mi-proyecto/ en el navegador.
<?php
echo 'PHP funciona. Versión: ' . PHP_VERSION;

// Muestra toda la configuración: útil para comprobar extensiones y php.ini
// phpinfo();
PHP también trae un servidor integrado para pruebas rápidas: en una terminal, dentro de la carpeta del proyecto, ejecuta php -S localhost:8000 y abre http://localhost:8000. No sirve para producción, pero es perfecto para experimentar.

Opción 2: Docker con docker-compose

Con Docker, cada proyecto define exactamente qué versión de PHP y de MySQL usa. Todo el equipo, y el servidor, ejecutan lo mismo. Instala Docker Desktop y crea estos dos archivos en la carpeta del proyecto:

services:
  web:
    build: .
    ports:
      - "8080:80"          # http://localhost:8080
    volumes:
      - ./src:/var/www/html # tu código, editable en vivo
    depends_on:
      - db

  db:
    image: mysql:8.4
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: app
      MYSQL_USER: app
      MYSQL_PASSWORD: secreto
    ports:
      - "3306:3306"
    volumes:
      - datos:/var/lib/mysql # los datos sobreviven al reiniciar

volumes:
  datos:
FROM php:8.3-apache
# Extensiones para conectar con MySQL
RUN docker-php-ext-install pdo_mysql mysqli
RUN a2enmod rewrite

Guarda tu código en la carpeta src/ y arranca todo con docker compose up -d. Desde PHP, la base de datos se encuentra en el host db (el nombre del servicio), no en localhost.

XAMPP vs Docker: cuál elegir

XAMPPDocker
Curva de aprendizajeMínimaMedia
Tiempo hasta el primer “Hola mundo”MinutosUn rato la primera vez
Versiones distintas por proyectoDifícilTrivial
Igual que el servidor de producciónNoSí
Ideal paraAprender y proyectos personalesEquipos y proyectos profesionales

Mi recomendación: empieza con XAMPP para concentrarte en aprender PHP, y pasa a Docker cuando trabajes en equipo o necesites replicar el servidor.

Ajustes de php.ini para desarrollo

El archivo php.ini controla el comportamiento de PHP (en XAMPP está en C:\xampp\php\php.ini). Para desarrollar, estos valores te ahorrarán horas:

display_errors = On          ; muestra los errores en pantalla
error_reporting = E_ALL      ; todos, incluidos los avisos
upload_max_filesize = 10M    ; tamaño máximo de archivo subido
post_max_size = 12M          ; debe ser mayor que upload_max_filesize
date.timezone = America/Argentina/Buenos_Aires

Reinicia Apache después de cada cambio. En producción, display_errors debe estar en Off, como explicamos en manejo de errores y excepciones.

Problemas comunes

Empieza con el entorno bien montado

El libro PHP desde cero hasta experto dedica un capítulo a configurar tu entorno local con XAMPP, WAMP o Docker antes de escribir la primera línea de código.

Comprar en Amazon