Tema
Instalación del entorno PHP
Para ejecutar PHP necesitas un servidor en tu computadora. En esta lección instalarás un entorno completo en Windows (PHP + servidor web + MySQL), aprenderás a usar PHP desde la terminal y a levantar un servidor en segundos con php -S.
Concepto
Un entorno de desarrollo PHP típico tiene tres piezas:
- PHP: el intérprete que ejecuta tu código.
- Servidor web (Apache o Nginx): recibe las peticiones HTTP y le pasa los
.phpa PHP. - Base de datos (MySQL o MariaDB): donde guardarás usuarios, productos, etc.
Instalar las tres a mano es tedioso, por eso existen paquetes "todo en uno":
| Herramienta | Ventajas | Ideal para |
|---|---|---|
| Laragon | Ligero, rápido, cambia de versión de PHP fácil, URLs bonitas (miproyecto.test) | Recomendado en Windows |
| XAMPP | Muy conocido, muchos tutoriales | Si tu escuela/trabajo ya lo usa |
| Laravel Herd | Muy simple, pensado para Laravel | Lo verás en el curso de Laravel |
PHP suelto + php -S | Mínimo, sin instalar Apache | Pruebas rápidas y APIs |
Opción A: Laragon (recomendada)
- Descarga Laragon Full desde
laragon.orge instálalo (deja la ruta por defectoC:\laragon). - Abre Laragon y pulsa Iniciar todo (Start All). Arrancan Apache y MySQL.
- Tu carpeta de proyectos es
C:\laragon\www. - Crea la carpeta
C:\laragon\www\holay dentro un archivoindex.php:
php
<?php
// C:\laragon\www\hola\index.php
echo "¡PHP funciona! Versión: " . PHP_VERSION;- Visita
http://localhost/holao, gracias a los virtual hosts automáticos de Laragon,http://hola.test(puede que tengas que pulsar Recargar en Laragon tras crear la carpeta).
Para cambiar de versión de PHP: clic derecho en Laragon → PHP → Versión. Si necesitas PHP 8.3 o superior y no aparece, descarga el ZIP Thread Safe x64 desde windows.php.net, descomprímelo en C:\laragon\bin\php\ y selecciónalo.
Opción B: XAMPP
- Descarga XAMPP desde
apachefriends.org(elige la versión con PHP 8.x más reciente). - Instala en
C:\xampp(evitaArchivos de programapor temas de permisos). - Abre el XAMPP Control Panel y pulsa Start en Apache y MySQL.
- Tu carpeta de proyectos es
C:\xampp\htdocs. - Crea
C:\xampp\htdocs\hola\index.phpy visitahttp://localhost/hola.
phpMyAdmin (para administrar MySQL visualmente) queda en http://localhost/phpmyadmin.
Error común
"Apache no arranca" casi siempre significa que el puerto 80 está ocupado (Skype antiguo, IIS, otro servidor). En XAMPP: Config → httpd.conf → cambia Listen 80 por Listen 8080 y visita http://localhost:8080. Con MySQL pasa lo mismo con el puerto 3306 si tienes otro MySQL instalado.
PHP desde la terminal (CLI)
PHP no sólo sirve para páginas web: también puedes ejecutar scripts desde la terminal. Para que el comando php funcione en cualquier carpeta debe estar en el PATH.
- Laragon: menú → Herramientas → Path → Añadir Laragon a Path.
- XAMPP: añade
C:\xampp\phpal PATH manualmente.
Para añadirlo manualmente: busca "Variables de entorno" en Windows → Variables de entorno → en Path de tu usuario pulsa Editar → Nuevo → pega la ruta de la carpeta que contiene php.exe. Cierra y vuelve a abrir la terminal.
Comprueba:
powershell
php -v
# PHP 8.3.x (cli) (built: ...)
php -m # Lista las extensiones cargadas (busca pdo_mysql, mbstring, openssl...)
php --ini # Muestra qué archivo php.ini está usandoEjecuta un script:
php
<?php
// saludo.php
$nombre = $argv[1] ?? 'mundo'; // $argv contiene los argumentos de la terminal
echo "Hola, $nombre" . PHP_EOL; // PHP_EOL = salto de línea del sistemapowershell
php saludo.php
# Hola, mundo
php saludo.php Erick
# Hola, ErickTambién puedes probar código al vuelo con el modo interactivo:
powershell
php -a
# php > echo 2 + 3;
# 5El servidor integrado php -S
PHP trae un servidor web mínimo, perfecto para desarrollo. No necesitas Apache:
powershell
cd C:\Users\tu-usuario\proyectos\mi-sitio
php -S localhost:8000Ahora abre http://localhost:8000. Sirve los archivos de la carpeta actual; index.php es la página por defecto. Para detenerlo pulsa Ctrl + C.
Opciones útiles:
powershell
# Servir una subcarpeta como raíz pública (muy usado en proyectos con carpeta public/)
php -S localhost:8000 -t public
# Usar un "router": todas las peticiones pasan por router.php
php -S localhost:8000 router.phpUn router mínimo para URLs limpias:
php
<?php
// router.php — usado con: php -S localhost:8000 router.php
$ruta = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
// Si el archivo existe (css, imágenes, js), deja que el servidor lo entregue tal cual.
if ($ruta !== '/' && file_exists(__DIR__ . $ruta)) {
return false;
}
// Cualquier otra ruta la manejamos nosotros.
require __DIR__ . '/index.php';Sólo para desarrollo
php -S atiende una petición a la vez y no tiene medidas de seguridad de producción. Nunca lo uses para publicar un sitio real.
Configurar php.ini para desarrollo
php.ini controla el comportamiento de PHP. Abre el que indica php --ini (en Laragon: menú → PHP → php.ini) y asegúrate de tener en desarrollo:
ini
; Mostrar todos los errores mientras desarrollas
display_errors = On
error_reporting = E_ALL
; Zona horaria (evita avisos y horas incorrectas)
date.timezone = America/Mexico_City
; Límites de subida de archivos
upload_max_filesize = 20M
post_max_size = 25M
; Extensiones que usaremos en el curso (quita el ; si están comentadas)
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=fileinfo
extension=curl
extension=zipReinicia Apache (o el servidor php -S) después de editarlo. Comprueba la configuración con:
php
<?php
// info.php — muestra toda la configuración de PHP
phpinfo();Error común
Dejar info.php o display_errors = On en un servidor de producción. phpinfo() revela rutas, versiones y configuración que ayudan a un atacante. Bórralo en cuanto termines de revisar. Más en Seguridad web.
Editor recomendado
Visual Studio Code con estas extensiones:
- PHP Intelephense: autocompletado, errores en vivo, ir a definición.
- PHP Debug (con Xdebug) para depurar paso a paso (opcional al principio).
- EditorConfig y Prettier para mantener el formato.
En la configuración de VS Code, indica la ruta del ejecutable:
json
{
"php.validate.executablePath": "C:\\laragon\\bin\\php\\php-8.3.12-Win32-vs16-x64\\php.exe",
"intelephense.environment.phpVersion": "8.3.0"
}(Ajusta la ruta a la versión que tengas instalada.)
Buena práctica
Usa en tu computadora la misma versión mayor de PHP que tendrá el hosting del cliente. Si desarrollas en 8.3 y el hosting tiene 7.4, funciones como match o str_contains romperán el sitio al subirlo.
Ejercicios
- Instala Laragon o XAMPP, crea un proyecto
pruebacon unindex.phpque muestre la versión de PHP y la fecha actual. - Desde la terminal, crea un script
suma.phpque reciba dos números como argumentos y muestre su suma:php suma.php 4 6→4 + 6 = 10. - Levanta el mismo proyecto con
php -S localhost:8080y ábrelo en el navegador.
Ver solución
php
<?php
// index.php
echo "<h1>PHP " . PHP_VERSION . "</h1>";
echo "<p>Hoy es " . date('d/m/Y H:i') . "</p>";php
<?php
// suma.php
// $argv[0] es el nombre del script; los argumentos empiezan en 1.
if ($argc < 3) {
echo "Uso: php suma.php <numero1> <numero2>" . PHP_EOL;
exit(1); // Código de salida distinto de 0 = error
}
$a = (float) $argv[1];
$b = (float) $argv[2];
echo "$a + $b = " . ($a + $b) . PHP_EOL;powershell
cd C:\laragon\www\prueba
php -S localhost:8080
# Abre http://localhost:8080Resumen
- Necesitas PHP + servidor web + base de datos; Laragon o XAMPP lo traen todo.
- Tus proyectos van en
C:\laragon\wwwoC:\xampp\htdocsy se abren enhttp://localhost/.... - Añade PHP al PATH para usar
php -v,php script.phpyphp -a. php -S localhost:8000levanta un servidor de desarrollo sin Apache;-t publiccambia la raíz.- Configura
php.inicon errores visibles en desarrollo y la zona horaria correcta. - Nunca dejes
phpinfo()ni errores visibles en producción.