Antes de empezar a programar con PHP necesitamos preparar un entorno de trabajo. PHP no funciona igual que HTML o CSS, donde podemos abrir directamente el archivo en el navegador. En PHP necesitamos un servidor que interprete el código y devuelva al navegador el resultado generado.
Cuando escribimos una página en PHP, el navegador no ejecuta directamente ese código. El proceso habitual es el siguiente:
- El usuario accede a una dirección desde el navegador.
- El navegador hace una petición al servidor web.
- El servidor localiza el archivo PHP solicitado.
- PHP interpreta el código del archivo.
- El servidor devuelve al navegador una página HTML generada.
- El navegador muestra el resultado final al usuario.
Por este motivo, para trabajar cómodamente durante el aprendizaje vamos a utilizar un entorno local. Esto nos permitirá tener en nuestro propio ordenador todo lo necesario para probar nuestras aplicaciones web sin depender de un servidor externo.
Entornos locales preparados
Existen herramientas que instalan de forma sencilla los elementos básicos que necesitamos para trabajar con PHP. Algunas de las más conocidas son:
| Herramienta | Sistemas habituales | Incluye normalmente | Uso principal |
|---|---|---|---|
| XAMPP | Windows, Linux y macOS | Apache, PHP, MariaDB/MySQL y phpMyAdmin | Muy usado en formación y pruebas locales |
| MAMP | macOS y Windows | Apache o Nginx, PHP, MySQL y herramientas de gestión | Muy cómodo en equipos Mac |
| WAMP | Windows | Apache, PHP y MySQL/MariaDB | Alternativa clásica para Windows |
| Laragon | Windows | Apache/Nginx, PHP, MySQL y otras herramientas | Entorno ligero y flexible para desarrollo |

Estas herramientas nos permiten arrancar un servidor web en nuestro propio equipo. De esta forma podremos guardar nuestros archivos PHP en una carpeta concreta del entorno y acceder a ellos desde el navegador usando direcciones como:
http://localhost/
o, según la configuración:
http://localhost/mi_proyecto/
La palabra localhost hace referencia a nuestro propio ordenador. Es decir, estamos usando nuestro equipo como si fuera un pequeño servidor web local.
Por qué no usaremos inicialmente las integraciones de los IDE
Muchos editores e IDEs modernos permiten ejecutar PHP directamente desde sus propias herramientas, extensiones o servidores integrados. Por ejemplo, algunos entornos permiten lanzar un servidor interno, depurar código o conectar directamente con bases de datos.
Aunque estas opciones son útiles, al principio no las vamos a utilizar como base principal. El motivo es que queremos entender claramente cómo funciona una aplicación PHP en un entorno realista:
- dónde se colocan los archivos del proyecto;
- qué papel tiene el servidor web;
- cómo se comunica el navegador con el servidor;
- cómo se interpreta el código PHP;
- cómo se conecta PHP con una base de datos;
- cómo se accede a una aplicación desde una URL.
Usar herramientas como XAMPP o MAMP nos ayuda a ver el proceso completo de forma más clara. El IDE será nuestro editor de código, pero no queremos que oculte el funcionamiento real del servidor.
Por tanto, podremos usar editores como Visual Studio Code, PhpStorm, Eclipse, NetBeans u otros, pero el servidor será externo al IDE. Así entenderemos mejor la arquitectura real de una aplicación web.
Trabajar directamente en un servidor
Otra posibilidad es trabajar directamente sobre un servidor remoto. En este caso, los archivos PHP no se ejecutan en nuestro ordenador, sino en una máquina conectada a la red o a Internet.
Por ejemplo, podríamos tener un servidor con Linux, Apache, PHP y MySQL instalado. Subiríamos nuestros archivos mediante FTP, SFTP, Git o alguna herramienta similar, y probaríamos la aplicación desde el navegador accediendo a la dirección del servidor.
Este enfoque se parece más a un entorno de producción, pero también tiene algunos inconvenientes para empezar:
- es más fácil cometer errores que afecten a una aplicación real;
- dependemos de la conexión con el servidor;
- la configuración inicial puede ser más compleja;
- es menos cómodo para hacer pruebas rápidas;
- puede ser más difícil depurar errores al principio.
Aun así, es importante conocer esta forma de trabajo, porque muchas aplicaciones PHP se despliegan finalmente en servidores reales.
Trabajar con contenedores
Más adelante también podremos trabajar con contenedores, especialmente usando Docker. Esta forma de trabajo permite crear entornos aislados donde cada servicio se ejecuta en su propio contenedor.
Por ejemplo, una aplicación PHP podría tener varios contenedores:
| Contenedor | Función |
| Apache o Nginx | Servidor web |
| PHP | Interpretación del código PHP |
| MySQL o MariaDB | Base de datos |
| phpMyAdmin | Gestión visual de la base de datos |
La ventaja de los contenedores es que podemos definir todo el entorno en archivos de configuración. Así, cualquier alumno o desarrollador puede levantar el mismo entorno en su equipo con los mismos servicios y versiones.
En este curso empezaremos usando entornos locales como XAMPP o MAMP porque son más directos para aprender. Más adelante veremos cómo llevar estos conocimientos a entornos más profesionales usando servidores reales y contenedores.
Idea principal
Para aprender PHP correctamente no basta con escribir código. También necesitamos entender el entorno donde ese código se ejecuta.
PHP forma parte de una arquitectura cliente-servidor. El navegador actúa como cliente, el servidor procesa la petición, PHP genera el contenido dinámico y la base de datos almacena la información.
Por eso, durante las primeras prácticas trabajaremos con un servidor local instalado en nuestro propio ordenador. Esto nos permitirá aprender paso a paso cómo funciona una aplicación web antes de pasar a escenarios más avanzados como servidores remotos o contenedores Docker.
Instalación de XAMPP
1. ¿Qué es XAMPP?
XAMPP es un paquete de software que nos permite instalar de forma sencilla un entorno de servidor web en nuestro propio ordenador.
Cuando trabajamos con PHP no basta con abrir el archivo directamente en el navegador, como haríamos con un archivo HTML. PHP necesita ser interpretado por un servidor. XAMPP nos proporciona ese entorno de trabajo local para poder practicar y desarrollar aplicaciones web.
XAMPP incluye normalmente los siguientes componentes:
| Componente | Función |
|---|---|
| Apache | Servidor web que recibe las peticiones del navegador |
| PHP | Lenguaje que interpreta los archivos .php |
| MariaDB / MySQL | Sistema de base de datos |
| phpMyAdmin | Herramienta web para gestionar bases de datos |
| Perl | Otro lenguaje incluido en el paquete |
En este curso usaremos XAMPP como entorno local para aprender PHP de forma sencilla antes de pasar a entornos más avanzados como servidores reales o contenedores Docker.
2. Descargar XAMPP
Para descargar XAMPP debemos acceder a la página oficial:
https://www.apachefriends.org/es/download.html
Es recomendable descargar siempre XAMPP desde la página oficial de Apache Friends para evitar instaladores modificados o versiones no fiables.
3. Instalación de XAMPP en Windows
3.1. Descargar el instalador
Desde la página oficial descargamos la versión de XAMPP para Windows.
El archivo descargado tendrá un nombre parecido a este:
xampp-windows-x64-8.x.x-installer.exe
El número de versión puede cambiar dependiendo de la versión disponible en ese momento.
3.2. Ejecutar el instalador
Una vez descargado el archivo, hacemos doble clic sobre él para iniciar la instalación.
Es posible que Windows muestre una advertencia de seguridad o de permisos. En ese caso, aceptamos la ejecución si hemos descargado el archivo desde la página oficial.
También puede aparecer una advertencia relacionada con el control de cuentas de usuario de Windows. Para evitar problemas de permisos, es recomendable instalar XAMPP directamente en:
C:\xampp
No es recomendable instalarlo dentro de Archivos de programa, ya que puede dar problemas de permisos al trabajar con archivos del servidor.
3.3. Seleccionar componentes
Durante la instalación aparecerá una pantalla para seleccionar los componentes.
Para este curso podemos dejar marcados, como mínimo:
- Apache
- MySQL o MariaDB
- PHP
- phpMyAdmin
También pueden aparecer otros componentes como Perl, Tomcat, Mercury o FileZilla. Para empezar con PHP no son imprescindibles.
3.4. Elegir carpeta de instalación
Seleccionamos como carpeta de instalación:
C:\xampp
Esta será la carpeta principal donde se instalará XAMPP.
Dentro de esta carpeta encontraremos subcarpetas importantes como:
| Carpeta | Función |
apache | Archivos del servidor Apache |
mysql | Archivos relacionados con la base de datos |
php | Archivos del intérprete PHP |
htdocs | Carpeta donde colocaremos nuestros proyectos web |
3.5. Finalizar la instalación
Continuamos con el asistente hasta finalizar.
Al terminar, podemos marcar la opción para abrir el panel de control de XAMPP.
6. El panel de control de XAMPP
Una vez instalado XAMPP, podemos abrir su panel de control.
Desde este panel podremos iniciar y detener los servicios principales.
Los servicios que más usaremos al principio son:
| Servicio | Para qué sirve |
| Apache | Permite ejecutar páginas PHP desde el navegador |
| MySQL / MariaDB | Permite trabajar con bases de datos |
| phpMyAdmin | Permite administrar las bases de datos desde el navegador |
Para trabajar con PHP debemos iniciar como mínimo:
- Apache
Si nuestra aplicación usa base de datos, también debemos iniciar:
- MySQL o MariaDB
7. Comprobar que XAMPP funciona
Una vez iniciado Apache, abrimos el navegador y escribimos:
http://localhost
Si XAMPP está funcionando correctamente, veremos la página de bienvenida o panel inicial de XAMPP.
Esto significa que nuestro ordenador ya está funcionando como servidor web local.
8. Carpeta donde se guardan los proyectos
La carpeta más importante para empezar es htdocs.
En Windows suele estar en:
C:\xampp\htdocs
En macOS suele estar en:
/Applications/XAMPP/htdocs
En Linux suele estar en:
/opt/lampp/htdocs
Todo lo que coloquemos dentro de esa carpeta podrá abrirse desde el navegador usando localhost.
9. Crear nuestro primer proyecto PHP
Dentro de la carpeta htdocs, creamos una carpeta llamada:
mi_proyecto
Dentro de esa carpeta creamos un archivo llamado:
index.php
La estructura quedaría así:
htdocs/
└── mi_proyecto/
└── index.php
Dentro del archivo index.php escribimos:
<?php
echo "Hola, estoy ejecutando PHP con XAMPP";
?>
Guardamos el archivo.
Después abrimos el navegador y escribimos:
http://localhost/mi_proyecto/index.php
Si todo está correcto, veremos en pantalla:
Hola, estoy ejecutando PHP con XAMPP
10. Probar PHP dentro de HTML
También podemos mezclar HTML y PHP dentro del mismo archivo.
Modificamos el archivo index.php con este contenido:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Primera prueba con PHP</title>
</head>
<body>
<h1>Mi primera página con PHP</h1>
<p>Este texto está escrito en HTML.</p>
<p>
<?php
echo "Este texto ha sido generado por PHP.";
?>
</p>
</body>
</html>
Al abrir de nuevo:
http://localhost/mi_proyecto/index.php
veremos una página HTML normal, pero parte de su contenido habrá sido generado por PHP.
11. Crear una página de información de PHP
PHP tiene una función muy útil para comprobar la configuración instalada:
<?php
phpinfo();
?>
Podemos crear un archivo llamado:
info.php
dentro de nuestra carpeta mi_proyecto.
La estructura quedaría así:
htdocs/
└── mi_proyecto/
├── index.php
└── info.php
Dentro de info.php escribimos:
<?php
phpinfo();
?>
Después abrimos en el navegador:
http://localhost/mi_proyecto/info.php
Aparecerá una página con información sobre la versión de PHP, configuración, extensiones activas y otros datos del entorno.
Esta página es útil para comprobar que PHP funciona correctamente.
Importante: en proyectos reales no se debe dejar publicado un archivo phpinfo(), porque muestra demasiada información del servidor.
12. Acceder a phpMyAdmin
Si hemos iniciado Apache y MySQL/MariaDB desde el panel de control de XAMPP, podemos acceder a phpMyAdmin desde el navegador:
http://localhost/phpmyadmin
phpMyAdmin nos permite gestionar bases de datos desde una interfaz web.
Desde ahí podremos:
- crear bases de datos;
- crear tablas;
- insertar datos;
- modificar registros;
- ejecutar consultas SQL;
- importar y exportar bases de datos.
Más adelante usaremos esta herramienta para conectar nuestras aplicaciones PHP con una base de datos.
13. Problemas frecuentes
Apache no arranca
Uno de los problemas más habituales es que Apache no pueda iniciarse porque el puerto 80 ya está ocupado.
El puerto 80 puede estar siendo usado por otros programas como:
- IIS de Windows;
- Skype;
- Docker;
- otro servidor web;
- alguna herramienta de desarrollo.
Soluciones posibles:
- Cerrar el programa que está usando el puerto 80.
- Cambiar el puerto de Apache.
- Ejecutar XAMPP como administrador en Windows.
Si cambiamos Apache al puerto 8080, accederíamos así:
http://localhost:8080
Y nuestros proyectos se abrirían así:
http://localhost:8080/mi_proyecto/index.php
MySQL o MariaDB no arranca
Puede ocurrir que la base de datos no arranque porque el puerto 3306 esté ocupado.
Ese puerto puede estar siendo usado por otra instalación de MySQL o MariaDB.
Soluciones posibles:
- Detener el otro servicio de MySQL/MariaDB.
- Cambiar el puerto de la base de datos en XAMPP.
- Reiniciar el equipo y probar de nuevo.
- Revisar los logs desde el panel de control.
El navegador muestra el código PHP en lugar del resultado
Si al abrir un archivo PHP vemos el código escrito en pantalla, normalmente significa que estamos abriendo el archivo directamente desde el sistema de archivos.
Ejemplo incorrecto:
file:///C:/xampp/htdocs/mi_proyecto/index.php
Forma correcta:
http://localhost/mi_proyecto/index.php
Los archivos PHP deben ejecutarse a través del servidor, no abrirse directamente como archivos locales.
Error 404 al abrir el proyecto
Un error 404 significa que el servidor no encuentra el archivo o carpeta que estamos solicitando.
Debemos comprobar:
- que Apache está iniciado;
- que la carpeta del proyecto está dentro de
htdocs; - que el nombre de la carpeta está bien escrito;
- que el archivo
index.phpexiste; - que la URL coincide con la estructura real.
Por ejemplo, si tenemos:
C:\xampp\htdocs\mi_proyecto\index.php
la URL correcta será:
http://localhost/mi_proyecto/index.php
14. Buenas prácticas para organizar proyectos
Dentro de htdocs podemos crear una carpeta para cada proyecto.
Ejemplo:
htdocs/
├── proyecto_01/
│ └── index.php
├── proyecto_02/
│ └── index.php
└── pruebas_php/
└── index.php
Es recomendable usar nombres de carpetas sencillos:
- sin espacios;
- sin acentos;
- en minúsculas;
- usando guiones bajos o guiones medios si hace falta.
Ejemplos recomendados:
mi_proyecto
tienda_online
practica_01
reservas_camping
Ejemplos poco recomendables:
Mi Proyecto
Práctica PHP número 1
web final!!!
15. Resumen del proceso
El proceso básico para trabajar con XAMPP será siempre parecido:
- Abrir XAMPP.
- Iniciar Apache.
- Iniciar MySQL/MariaDB si vamos a usar base de datos.
- Crear una carpeta de proyecto dentro de
htdocs. - Crear archivos
.php. - Abrir el proyecto desde el navegador usando
localhost. - Comprobar el resultado.
- Corregir el código y volver a probar.
La idea principal es entender que PHP no se ejecuta en el navegador. PHP se ejecuta en el servidor local que nos proporciona XAMPP. El navegador solo recibe el resultado final, normalmente HTML.
16. Actividad propuesta para el alumno
Objetivo
Comprobar que XAMPP está correctamente instalado y que PHP funciona en el equipo.
Pasos
- Instala XAMPP en tu sistema operativo.
- Abre el panel de control de XAMPP.
- Inicia Apache.
- Abre en el navegador:
http://localhost
- Crea una carpeta dentro de
htdocsllamada:
prueba_php
- Dentro de esa carpeta crea un archivo llamado:
index.php
- Escribe el siguiente código:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Prueba PHP</title>
</head>
<body>
<h1>Prueba de XAMPP y PHP</h1>
<p>
<?php
echo "PHP está funcionando correctamente.";
?>
</p>
</body>
</html>
- Abre en el navegador:
http://localhost/prueba_php/index.php
- Comprueba que se muestra correctamente el mensaje.
Preguntas de reflexión
- ¿Por qué no podemos abrir un archivo PHP directamente con doble clic?
- ¿Qué papel cumple Apache dentro de XAMPP?
- ¿Qué diferencia hay entre abrir
localhosty abrir un archivo confile:///? - ¿Dónde debemos guardar nuestros proyectos PHP?
- ¿Para qué sirve phpMyAdmin?
- ¿Qué ocurre si Apache no está iniciado?
17. Conclusión
XAMPP nos permite disponer de un entorno de desarrollo local para aprender y practicar PHP sin necesidad de contratar un servidor externo.
Gracias a XAMPP podemos simular en nuestro propio ordenador el funcionamiento básico de una aplicación web real: el navegador hace una petición, Apache la recibe, PHP interpreta el código y el navegador muestra el resultado final.
Este entorno será la base inicial del curso. Más adelante podremos comparar esta forma de trabajo con otras opciones más avanzadas, como servidores remotos, máquinas virtuales o contenedores Docker.





