Introducción a PHP y entorno
PHP es un lenguaje pensado para ejecutarse en el servidor: el intérprete genera HTML, JSON o texto y el cliente solo ve el resultado. No corre en el navegador (salvo que lo uses como CLI en tu máquina).
Documentación oficial: manual PHP, servidor web integrado, uso de la CLI.
CLI frente a servidor web
| Modo | Qué hace | Para qué |
|---|---|---|
CLI (php script.php) | Ejecuta un fichero y escribe en stdout. | Scripts, cron, comprobar la instalación. |
| Módulo / php-fpm + Apache/Nginx | PHP responde peticiones HTTP reales. | Producción. |
Servidor integrado (php -S) | Un proceso de desarrollo que sirve el directorio actual. | Probar formularios en local. No es un servidor de producción. |
El manual oficial lo deja claro: el built-in server es para desarrollo y demos controladas; es un solo proceso (en versiones recientes puede forkar workers, pero sigue sin ser un servidor de internet). En público usas php-fpm (o equivalente) detrás de Nginx/Apache.
Comprobar la instalación
php -vDebes ver una línea PHP 8.x.... Si el comando no existe, instala el paquete de tu distro o el binario de php.net/downloads. Este manual asume PHP 8.
Ejecutar un script:
php hola.phpFichero mínimo
Un fichero PHP empieza por la etiqueta de apertura. Lo que va fuera de <?php ... ?> se envía tal cual (HTML). En CLI suele bastar un fichero solo con PHP:
<?php
$name = 'Iago';
echo "Hola, $name\n";Guárdalo como hola.php y lánzalo con php hola.php. echo escribe a la salida; "Hola, $name\n" interpola la variable (el capítulo 2 cubre tipos y comillas).
Servidor de desarrollo (desde el directorio del proyecto):
php -S localhost:8080Abre http://127.0.0.1:8080/hola.php. Eso no sustituye a Nginx ni a un hosting. No lo expongas a una red pública.
Cuándo encaja PHP
- Páginas o APIs donde el servidor arma la respuesta.
- Código existente (CMS, paneles, scripts de mantenimiento).
- Un lenguaje con un runtime único: no hay un “bundle” de frontend.
No es el único camino: Node, Python o Go cubren el mismo hueco. PHP brilla cuando quieres HTML generado en servidor con poco andamiaje. Los frameworks (Laravel, Symfony) abstraen enrutado, plantillas y ORM; este manual enseña el lenguaje, no un framework.
El resto del recorrido: tipos → control y funciones → arrays → HTTP/formularios → sesiones → ficheros → PDO → OOP.
Errores habituales
- Tratar
php -Scomo despliegue. - Subir un
.phpy esperar que el navegador lo interprete sin un SAPI (Apache/php-fpm/Caddy, etc.). - Mezclar HTML y lógica sin un plan: más adelante (capítulos 11–12) se separa; aquí basta con scripts claros.
- Copiar recetas de PHP 5 (
mysql_query,each(),create_function).
Buenas prácticas
- Comprueba
php -ven cada máquina (local, CI, servidor). - Un fichero = un propósito al empezar.
- En web, el DocumentRoot no debe ser “todo el disco”: solo lo público.
- Producción: PHP-FPM + proxy, no el servidor integrado.
Ejercicio
- Crea
hola.phpcon el snippet de arriba y ejecútalo en CLI. - Cambia
$namey vuelve a lanzarlo. - Arranca
php -S localhost:8080y ábrelo en el navegador. Luego apágalo. No lo dejes escuchando en0.0.0.0en una red compartida.
Siguiente paso
Continúa con Sintaxis básica y tipos de datos.
