# Cómo instalar PHP 8.4 en Caddy usando PHP-FPM

- Link: https://binariocero.com/linux/como-instalar-php-8-4-en-caddy-usando-php-fpm
- Published: 2026-02-27T11:49:24+01:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

Cuando usamos PHP en servidores tradicionales como Apache, muchas guías hablan de“
PHP normal” o `mod_php`. Esto significa que PHP se ejecuta **dentro del mismo proceso
del servidor web**, lo que funciona bien para Apache porque tiene soporte nativo
para `mod_php`.

Sin embargo, **Caddy no tiene soporte para ejecutar PHP directamente**, y tampoco
Nginx. Esto se debe a que estos servidores funcionan de forma distinta: **manejan
las peticiones web pero no procesan scripts PHP dentro de su propio proceso**. Por
eso, **Caddy siempre necesita PHP-FPM (FastCGI Process Manager)** para ejecutar 
PHP.

## Qué es PHP-FPM y por qué usarlo

**PHP-FPM (FastCGI Process Manager)** es una versión de PHP diseñada para ejecutarse**
como un proceso independiente** que escucha peticiones FastCGI desde el servidor
web. Esto ofrece varias ventajas:

 * PHP corre separado del servidor web → más seguridad y estabilidad.
 * Mejor manejo de **múltiples peticiones simultáneas** → más rendimiento.
 * Permite configurar **pools de procesos** distintos por sitio o dominio.
 * Compatible con servidores como **Caddy y Nginx**, que solo saben “enviar la petición
   a un proceso externo”.

En resumen: si quieres usar PHP con Caddy, **no hay otra opción que PHP-FPM**.

## Instalar PHP 8.4-FPM y extensiones comunes

En Debian o Ubuntu, puedes instalar PHP 8.4-FPM con las extensiones más utilizadas
así:

    ```wp-block-preformatted
    sudo apt updatesudo apt install php8.4-fpm php8.4-cli php8.4-mysql php8.4-curl php8.4-mbstring php8.4-xml -y
    ```

 * `php8.4-fpm` → El servicio PHP independiente para Caddy.
 * `php8.4-cli` → Permite ejecutar PHP desde la terminal.
 * `php8.4-mysql` → Conexión a bases de datos MySQL o MariaDB.
 * `php8.4-curl` → Realizar peticiones HTTP desde PHP.
 * `php8.4-mbstring` → Manejo de cadenas multibyte (UTF-8).
 * `php8.4-xml` → Procesamiento de XML.

Verifica que PHP-FPM esté activo:

    ```wp-block-preformatted
    sudo systemctl status php8.4-fpm
    ```

El servicio normalmente crea un **socket Unix** en:

    ```wp-block-preformatted
    /run/php/php8.4-fpm.sock
    ```

o escucha en el **puerto TCP 127.0.0.1:9000**.

## Configurar Caddy para usar PHP-FPM

Caddy necesita que le indiquemos dónde está PHP-FPM. Esto se hace en el archivo `
Caddyfile`:

### Usando socket Unix (recomendado)

    ```wp-block-preformatted
    example.com {    root * /var/www/html    php_fastcgi unix//run/php/php8.4-fpm.sock    file_server}
    ```

### Usando TCP (opcional)

    ```wp-block-preformatted
    example.com {    root * /var/www/html    php_fastcgi 127.0.0.1:9000    file_server}
    ```

 * `root * /var/www/html` → Carpeta raíz de la web.
 * `php_fastcgi` → Indica a Caddy que envíe las peticiones PHP a PHP-FPM.
 * `file_server` → Sirve archivos estáticos (HTML, CSS, JS).

Recarga Caddy para aplicar cambios:

    ```wp-block-preformatted
    sudo systemctl reload caddy
    ```

## Resumen

 1. PHP “normal” (`mod_php`) corre dentro del servidor web → no sirve para Caddy.
 2. PHP-FPM corre separado como proceso independiente → Caddy solo envía las peticiones
    PHP a él.
 3. Instalamos PHP 8.4-FPM con extensiones comunes para que la web funcione correctamente.
 4. Configuramos Caddy para usar `php_fastcgi` apuntando al socket o puerto de PHP-
    FPM.

Con esto, tu servidor Caddy estará listo para servir PHP 8.4 de forma **eficiente**.
