Introducción a PHP desde cero: qué es, cómo funciona un servidor web y cómo ejecutar tu primer archivo


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:

  1. el navegador interpreta la URL;
  2. se conecta al servidor web;
  3. solicita el recurso /club/index.php;
  4. Apache detecta que es un archivo PHP;
  5. PHP ejecuta el código;
  6. se genera una respuesta;
  7. Apache devuelve esa respuesta al navegador;
  8. 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:

☕ Apoyar con Mercado Pago

🌎 Apoyar con PayPal


Descubre más desde Club Programador

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

Descubre más desde Club Programador

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo