PHP es uno de los lenguajes más utilizados para desarrollar aplicaciones web del lado del servidor. Antes de aprender variables, condicionales o formularios, conviene entender dónde se ejecuta PHP, qué papel cumple un servidor web y qué ocurre realmente cuando escribimos una URL en el navegador.
En esta guía vamos a construir esa base teórica desde cero y después vamos a ejecutar nuestro primer archivo PHP.
¿Qué es PHP?
PHP es un lenguaje de programación que normalmente se ejecuta en el servidor.
Eso significa que el navegador no interpreta directamente el código PHP. El servidor ejecuta ese código y devuelve como resultado HTML, JSON, texto u otro contenido.
Por ejemplo, este código:
<?php echo 'Hola desde PHP';
no llega al navegador tal como está escrito. El servidor ejecuta PHP y el navegador recibe algo equivalente a:
Hola desde PHP
Cliente y servidor
En una aplicación web existen, como mínimo, dos partes importantes:
- cliente: normalmente el navegador;
- servidor: la máquina o software que procesa las solicitudes y devuelve respuestas.
Cuando escribimos una dirección como:
https://misitio.com/productos.php
el navegador envía una petición al servidor. El servidor busca el recurso, ejecuta PHP si corresponde y devuelve una respuesta.
Flujo básico de una aplicación PHP
Navegador ↓ HTTP Servidor web (Apache / Nginx) ↓ PHP ↓ MySQL u otra base de datos ↓ PHP genera respuesta ↓ HTML / JSON ↓ Navegador
No todas las aplicaciones usan exactamente este flujo, pero es una buena representación inicial.
¿Qué es un servidor web?
Un servidor web es el software encargado de recibir solicitudes HTTP y devolver respuestas.
Dos de los más utilizados son:
- Apache HTTP Server;
- Nginx.
También PHP incluye un servidor de desarrollo integrado que resulta útil para proyectos simples y pruebas locales.
Apache
Apache es un servidor web muy utilizado en entornos PHP.
En instalaciones locales como XAMPP, Apache suele escuchar en el puerto 80. Por eso podemos acceder mediante:
http://localhost/
Si tenemos un archivo:
C:\xampp\htdocs\club\index.php
podemos acceder normalmente con:
http://localhost/club/index.php
Nginx
Nginx también es muy utilizado en servidores Linux y entornos de producción.
En este caso suele trabajar junto con PHP-FPM, que es quien ejecuta los archivos PHP.
El flujo simplificado es:
Navegador → Nginx → PHP-FPM → PHP → respuesta
Servidor integrado de PHP
PHP puede iniciar un servidor de desarrollo sin Apache ni Nginx.
Desde una terminal podemos ejecutar:
php -S 127.0.0.1:8000
Luego accedemos desde el navegador a:
http://127.0.0.1:8000/
o:
http://localhost:8000/
¿Qué significa localhost?
localhost representa la computadora en la que estamos trabajando.
Normalmente apunta a la dirección IP:
127.0.0.1
Por eso estas URLs suelen referirse a la misma máquina:
http://localhost/ http://127.0.0.1/
¿Qué es un puerto?
Una misma computadora puede ofrecer varios servicios al mismo tiempo. Los puertos permiten identificar cuál servicio debe recibir una conexión.
Algunos puertos frecuentes son:
- 80: HTTP;
- 443: HTTPS;
- 8000: muy usado para servidores de desarrollo;
- 3306: puerto habitual de MySQL.
Por ejemplo:
http://localhost:8000/
significa que queremos conectarnos al servicio web que escucha en el puerto 8000 de nuestra propia máquina.
HTTP y HTTPS
HTTP es el protocolo utilizado para intercambiar información entre navegador y servidor.
HTTPS es HTTP protegido mediante cifrado TLS.
Ejemplos:
http://localhost/ https://clubprogramador.com/
En producción deberíamos utilizar HTTPS siempre que sea posible.
¿Qué ocurre cuando escribimos una URL?
Supongamos que ingresamos:
http://localhost/club/index.php
De forma simplificada ocurre lo siguiente:
- el navegador interpreta la URL;
- se conecta al servidor web;
- solicita el recurso
/club/index.php; - Apache detecta que es un archivo PHP;
- PHP ejecuta el código;
- se genera una respuesta;
- Apache devuelve esa respuesta al navegador;
- el navegador muestra el resultado.
Una petición HTTP real
Conceptualmente, el navegador puede enviar algo parecido a:
GET /club/index.php HTTP/1.1
Host: localhost
Y el servidor podría responder:
HTTP/1.1 200 OK Content-Type: text/html <h1>Hola</h1>
¿Qué diferencia hay entre HTML y PHP?
HTML es un lenguaje de marcado. Describe la estructura de una página.
<h1>Hola mundo</h1>
PHP es un lenguaje de programación que puede generar HTML dinámicamente.
<?php $nombre = 'Ana'; echo '<h1>Hola ' . $nombre . '</h1>';
¿Qué diferencia hay entre PHP y JavaScript?
Tradicionalmente:
- PHP se ejecuta en el servidor;
- JavaScript se ejecuta principalmente en el navegador.
JavaScript también puede ejecutarse en servidores mediante tecnologías como Node.js, pero en una arquitectura PHP tradicional cumple principalmente funciones del lado del cliente.
¿Qué papel cumple MySQL?
PHP puede comunicarse con MySQL para almacenar y recuperar información.
Por ejemplo:
PHP → consulta SQL → MySQL → resultado → PHP
PHP puede usar ese resultado para generar HTML o una respuesta JSON.
XAMPP
XAMPP es un paquete que instala varias herramientas útiles para desarrollo local, entre ellas normalmente:
- Apache;
- PHP;
- MariaDB/MySQL;
- phpMyAdmin.
En Windows, el directorio web suele ser:
C:\xampp\htdocs\
Si creamos:
C:\xampp\htdocs\miweb\index.php
podemos abrirlo mediante:
http://localhost/miweb/
Laragon
Laragon es otra herramienta popular para desarrollo PHP en Windows.
Su carpeta habitual de proyectos es:
C:\laragon\www\
Por ejemplo:
C:\laragon\www\club\index.php
puede abrirse normalmente mediante:
http://localhost/club/
Dependiendo de la configuración, Laragon también puede generar dominios locales automáticos, por ejemplo:
http://club.test/
DocumentRoot
El DocumentRoot es el directorio desde el cual el servidor web publica archivos.
En XAMPP suele ser:
C:\xampp\htdocs
En servidores Linux con Apache puede ser algo como:
/var/www/html
En Nginx también se configura un directorio raíz mediante su configuración.
Por qué no funciona abrir un PHP con doble clic
Si hacemos doble clic sobre:
C:\xampp\htdocs\club\index.php
Windows puede intentar abrir el archivo directamente.
Pero PHP necesita ser ejecutado por un intérprete del lado del servidor.
Por eso debemos acceder mediante una URL:
http://localhost/club/index.php
Nuestro primer archivo PHP
Creamos un archivo llamado:
index.php
y escribimos:
<?php echo 'Hola mundo desde PHP';
Luego lo abrimos mediante la URL correspondiente.
La etiqueta <?php
Indica que comienza código PHP.
<?php
En archivos que contienen solamente PHP normalmente no es necesario escribir la etiqueta de cierre ?>.
echo
echo envía contenido a la salida.
echo 'Hola';
También podemos generar HTML:
echo '<h1>Hola mundo</h1>';
Mezclar PHP y HTML
PHP puede convivir dentro de un documento HTML.
Mi primera página PHP
<h1>Mi sitio</h1>
<?php
echo 'Contenido generado con PHP';
?>
Archivos .php y .html
Un archivo .html normalmente es servido directamente.
Un archivo .php debe pasar por el intérprete PHP antes de ser enviado al navegador.
Por eso un archivo PHP puede generar contenido dinámico.
Códigos de estado HTTP
El servidor también devuelve un código que informa qué ocurrió.
- 200: respuesta correcta;
- 404: recurso no encontrado;
- 403: acceso prohibido;
- 500: error interno del servidor.
Errores comunes al comenzar
Apache no está iniciado
Si intentamos acceder a localhost y no existe ningún servidor escuchando, el navegador no podrá conectarse.
Puerto ocupado
Otro programa puede estar utilizando el puerto 80. En ese caso Apache puede no iniciar o puede configurarse otro puerto.
Por ejemplo:
http://localhost:8080/
Archivo fuera del DocumentRoot
Guardar:
C:\Users\Usuario\Desktop\index.php
no significa que Apache pueda acceder automáticamente a ese archivo.
Escribir una URL incorrecta
La ruta física:
C:\xampp\htdocs\club\index.php
no se escribe directamente en el navegador. Su URL es:
http://localhost/club/index.php
PHP no está instalado o configurado
Si usamos el servidor integrado y ejecutamos:
php -S localhost:8000
pero el comando php no existe, debemos instalar PHP o agregar su ejecutable al PATH del sistema.
Ejercicio práctico
Creá una carpeta llamada:
php-practica
dentro del directorio web de XAMPP o Laragon.
Después creá:
index.php
con el siguiente contenido:
PHP
<h1>Mi primer proyecto PHP</h1>
<p>
<?php
echo 'PHP está funcionando correctamente';
?>
</p>
Luego probalo desde:
http://localhost/php-practica/
Qué aprendimos
- qué es PHP;
- diferencia entre cliente y servidor;
- qué hace un servidor web;
- qué son Apache y Nginx;
- qué significa localhost;
- qué es un puerto;
- diferencia entre PHP, HTML, JavaScript y MySQL;
- cómo funcionan XAMPP y Laragon;
- qué es DocumentRoot;
- cómo ejecutar un archivo PHP;
- cómo funciona echo.
¿Qué sigue?
En la próxima guía vamos a estudiar variables, tipos de datos y operadores en PHP, que son la base para empezar a escribir programas con lógica.
¿Te sirvió esta guía? ☕
Si este contenido te ayudó y querés apoyar a Club Programador para seguir publicando ejercicios, proyectos y guías gratuitas, podés colaborar mediante: