Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

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

Loading

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í:

sudo apt update
sudo 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:

sudo systemctl status php8.4-fpm

El servicio normalmente crea un socket Unix en:

/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)

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

Usando TCP (opcional)

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:

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.

You may also like...