Instalar XAMPP en Windows: PHP, MySQL y phpMyAdmin funcionando en 20 minutos

Sin XAMPP no puedes probar PHP en tu ordenador. Esta guía te lo instala y configura de cero, con solución a los errores que te vas a encontrar sí o sí

Llevas un rato buscando "cómo ejecutar PHP en Windows" y te has encontrado con respuestas que asumen que ya sabes lo que es un servidor web, un puerto o un proceso. No sabes. Está bien. Por eso existe XAMPP.

XAMPP es un programa que instala en tu ordenador todo lo que necesitas para desarrollar con PHP: el servidor web Apache, la base de datos MySQL, phpMyAdmin para gestionar la base de datos visualmente, y PHP propiamente. Todo junto, todo configurado, todo gratis.

Esta guía te lleva desde cero hasta tener tu primer archivo PHP funcionando en el navegador, con las soluciones a los dos o tres errores que aparecen casi siempre en la instalación.

Descargar XAMPP

Ve a apachefriends.org y descarga la versión para Windows. A día de hoy la versión estable es la 8.2.x con PHP 8.2. Descarga el instalador .exe, pesa unos 160 MB.

Página de descarga de apachefriends.org con el botón de descarga para Windows resaltado
Página oficial de descarga de XAMPP — elige la versión Windows

⚠️ No instales en C:\Program Files

El instalador te sugiere instalar en C:\xampp. Déjalo así. Si lo instalas en C:\Program Files, Windows aplica restricciones de permisos que luego hacen que Apache no pueda escribir archivos y pasan cosas raras.

Instalar paso a paso

Ejecuta el instalador con doble clic. Si el antivirus te pregunta, permite la ejecución. Los pasos son:

Selección de componentes. El instalador te pregunta qué instalar. Para desarrollo web con PHP y base de datos, necesitas: Apache, MySQL, PHP y phpMyAdmin. El resto (Tomcat, Perl, FileZilla...) lo puedes desmarcar, no lo vas a usar.

Pantalla de selección de componentes de XAMPP con Apache, MySQL, PHP y phpMyAdmin marcados
Marca solo Apache, MySQL, PHP y phpMyAdmin — el resto no lo necesitas ahora

Carpeta de instalación. Deja la ruta por defecto: C:\xampp. Siguiente, siguiente, instalar. El proceso tarda entre 2 y 5 minutos según tu ordenador.

Al terminar, marca la opción "Do you want to start the Control Panel now?" y haz clic en Finish. Se abre el Panel de Control de XAMPP.

Arrancar Apache y MySQL

El Panel de Control es la pantalla principal desde donde controlas los servidores. Tiene una fila por cada servicio. Las que nos interesan son Apache y MySQL.

Panel de control de XAMPP con los botones Start de Apache y MySQL sin pulsar
Panel de control de XAMPP recién abierto — los servicios están parados

Pulsa Start en Apache y luego Start en MySQL. Si todo va bien, los nombres se ponen en verde y aparecen los números de puerto (80 y 443 para Apache, 3306 para MySQL).

Panel de control de XAMPP con Apache y MySQL en verde mostrando los puertos 80, 443 y 3306
Apache y MySQL corriendo — nombres en verde y puertos visibles

Abre el navegador y ve a http://localhost. Si ves la página de bienvenida de XAMPP, Apache está funcionando.

Página de bienvenida de XAMPP en el navegador en localhost
La página de bienvenida de XAMPP en localhost — señal de que Apache funciona

El error más habitual: puerto 80 ocupado

Apache usa el puerto 80 para HTTP. Si ya tienes Skype, IIS, o algún otro programa usando ese puerto, Apache no puede arrancar y el nombre se queda en rojo.

Para saber qué está ocupando el puerto 80, abre el símbolo del sistema como administrador (busca "cmd" en el menú inicio, clic derecho → Ejecutar como administrador) y escribe:

# Buscar qué proceso usa el puerto 80
netstat -aon | findstr :80

En la columna de la derecha aparece el PID del proceso. Abre el Administrador de tareas (Ctrl+Shift+Esc), ve a la pestaña Detalles, busca ese PID y mira qué programa es.

La solución más rápida si el culpable es Skype u otro programa que no necesitas ahora: ciérralo y vuelve a intentar Start en Apache. Si el culpable es IIS (el servidor web de Windows), desactívalo en Panel de Control → Programas → Activar o desactivar características de Windows → desmarca Internet Information Services.

Alternativa si no puedes liberar el puerto 80: cambia el puerto de Apache. En el Panel de Control de XAMPP, haz clic en Config junto a Apache → httpd.conf. Busca la línea Listen 80 y cámbiala a Listen 8080. Guarda, reinicia Apache, y accede con http://localhost:8080.

Tu primera carpeta de proyecto

Todo lo que pongas dentro de C:\xampp\htdocs\ es accesible desde el navegador como localhost/nombre-de-carpeta/.

Crea una carpeta con el nombre de tu proyecto dentro de htdocs. Por ejemplo C:\xampp\htdocs\mi-web\. Dentro crea un archivo index.php con este contenido:

<?php
echo "¡Hola desde PHP! La versión es: " . phpversion();

Abre el navegador y ve a http://localhost/mi-web/. Deberías ver el texto con la versión de PHP.

Navegador mostrando el texto Hola desde PHP con el número de versión 8.2.x
Tu primer archivo PHP ejecutándose en localhost

Si ves el código PHP en lugar de ejecutarse, el archivo tiene extensión .html en vez de .php. Asegúrate de que el nombre termina en .php.

Configurar VS Code para PHP

VS Code no ejecuta PHP, eso lo hace XAMPP. Pero sí puede detectar errores de sintaxis mientras escribes y ayudarte con autocompletado. Para activarlo:

Abre VS Code y ve a Archivo → Preferencias → Configuración (o Ctrl+,). Busca "php validate". Verás la opción PHP > Validate: Executable Path. Haz clic en "Editar en settings.json" y añade:

{
    "php.validate.executablePath": "C:/xampp/php/php.exe",
    "php.validate.enable": true
}

A partir de ahora VS Code subraya en rojo los errores de sintaxis PHP antes de que los ejecutes. No es un autocompletado completo, pero ya detecta los errores de llaves, puntos y coma y tipos más comunes.

Si quieres autocompletado completo, instala la extensión PHP Intelephense desde el Marketplace de VS Code. Es gratuita y mejora mucho la experiencia.

phpMyAdmin: gestionar la base de datos visualmente

Con MySQL arrancado en el Panel de Control, abre el navegador y ve a http://localhost/phpmyadmin. Se abre la interfaz de phpMyAdmin.

Por defecto el usuario es root sin contraseña. En local está bien así. En producción sería un problema grave, pero aquí solo es tu ordenador.

Para crear una base de datos: haz clic en "Nueva" en el panel izquierdo, escribe el nombre, selecciona utf8mb4_unicode_ci como cotejamiento, y clic en Crear.

Hacer que XAMPP arranque solo al iniciar Windows

Por defecto tienes que abrir el Panel de Control y pulsar Start cada vez que quieras desarrollar. Puedes hacer que Apache y MySQL arranquen solos al encender el ordenador.

En el Panel de Control de XAMPP, haz clic en el botón Config de la esquina superior derecha (no el de la fila de Apache, sino el general). En la ventana que se abre, marca "Autostart modules" para Apache y MySQL. Guarda y cierra.

La próxima vez que reinicies el ordenador, los servicios estarán corriendo sin que hagas nada.

Resumen de lo que tienes

Con XAMPP instalado y funcionando tienes en tu ordenador:

Tus proyectos van en C:\xampp\htdocs\nombre-proyecto\ y los abres en el navegador como localhost/nombre-proyecto/.

El siguiente paso

Con XAMPP funcionando ya puedes conectar tu formulario de contacto con PHP y MySQL. Sigue con el tutorial de Formulario de contacto con PHP y MySQL que usa exactamente este entorno.