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
- Un servidor web (Apache o Nginx) que reciba las peticiones del navegador.
- El intérprete de PHP, que ejecuta tu código.
- Una base de datos (MySQL o MariaDB) en cuanto quieras guardar información.
- Un editor de código, como VS Code con una extensión de 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
- Descarga XAMPP desde apachefriends.org y elige la versión con el PHP más reciente.
- Instálalo con las opciones por defecto (en Windows, en
C:\xampp). - Abre el panel de control y pulsa Start en Apache y en MySQL.
- Crea la carpeta
C:\xampp\htdocs\mi-proyectoy dentro un archivoindex.php. - 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 -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
| XAMPP | Docker | |
|---|---|---|
| Curva de aprendizaje | Mínima | Media |
| Tiempo hasta el primer “Hola mundo” | Minutos | Un rato la primera vez |
| Versiones distintas por proyecto | Difícil | Trivial |
| Igual que el servidor de producción | No | Sí |
| Ideal para | Aprender y proyectos personales | Equipos 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
- Apache no arranca: otro programa usa el puerto 80 (Skype, IIS u otro servidor). Ciérralo o cambia el puerto en la configuración de Apache.
- MySQL no arranca: ya hay otro MySQL instalado usando el puerto 3306.
- El navegador descarga el archivo o muestra el código: lo abriste con doble clic
(
file:///) en lugar de porhttp://localhost. - Página en blanco: hay un error y
display_errorsestá desactivado.
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