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.
⚠️ 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.
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.
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).
Abre el navegador y ve a http://localhost. Si ves la página de bienvenida de XAMPP, Apache está funcionando.
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.
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:
- Apache en
localhost:80— sirve tus archivos PHP como si fuera un hosting real - MySQL en
localhost:3306— base de datos local para tus proyectos - phpMyAdmin en
localhost/phpmyadmin— gestión visual de bases de datos - PHP 8.2 ejecutando todos los archivos .php de tu carpeta htdocs
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.