Cómo instalar Caddy Web Server con PHP 8.1 en Ubuntu 22.04

Caddy es un servidor web moderno construido en lenguaje GO. Es un servidor web sencillo, fácil de usar, ligero y con soporte comercial. Soporta los protocolos HTTP/2 y experimental HTTP/3 y se ejecuta en cualquier lugar sin dependencias externas Puede ampliarse mediante plugins. Caddy es el único servidor web que utiliza HTTPS automáticamente y por defecto. Caddy obtiene y renueva automáticamente los certificados TLS para tus sitios. Está diseñado pensando en la seguridad y ofrece una serie de funciones útiles para alojar sitios web.

En este post, explicaremos cómo instalar el servidor web Caddy en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Un nombre de dominio válido apuntando a la IP de tu servidor.
  • Se ha configurado una contraseña de root en el servidor.

Instalar el servidor web Caddy

Por defecto, el paquete Caddy no está incluido en el repositorio por defecto de Ubuntu 22.04. Así que tendrás que añadir el repositorio de Caddy a tu sistema.

En primer lugar, instala todas las dependencias necesarias utilizando el siguiente comando:

apt-get install -y curl debian-keyring debian-archive-keyring apt-transport-https

A continuación, descarga y añade la clave GPG con el siguiente comando:

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

A continuación, añade un repositorio Caddy a la APT utilizando el siguiente comando:

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list

A continuación, actualiza el repositorio e instala el servidor web Caddy ejecutando el siguiente comando:

apt-get update
apt-get install caddy -y

Una vez instalado Caddy, puedes verificar la versión de Caddy mediante el siguiente comando:

caddy version

Obtendrás la siguiente salida:

v2.6.2 h1:wKoFIxpmOJLGl3QXoo6PNbYvGW4xLEgo32GPBEjWL8o=

A continuación, tendrás que establecer algún permiso para permitir que el binario de Caddy se conecte a puertos privilegiados como 80 y 443. Puedes establecerlo con el siguiente comando:

setcap 'cap_net_bind_service=+ep' /usr/bin/caddy

Ahora, abre tu navegador web y accede a la página por defecto de Caddy utilizando la URL http://your-server-ip. Deberías ver la siguiente página:

Servidor web Caddy

Cómo iniciar y detener el servicio Caddy

Puedes gestionar el servicio Caddy mediante systemd. Puedes iniciarlo y detenerlo fácilmente utilizando el comando systemctl.

Para iniciar el servicio Caddy, ejecuta el siguiente comando:

systemctl start caddy

Para detener el servicio Caddy, ejecuta el siguiente comando:

systemctl stop caddy

Para que el servicio Caddy se inicie al reiniciar el sistema, ejecuta el siguiente comando:

systemctl enable caddy

Para comprobar el estado del servicio Caddy, ejecuta el siguiente comando:

systemctl status caddy

Obtendrás la siguiente salida:

? caddy.service - Caddy
     Loaded: loaded (/lib/systemd/system/caddy.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-11-20 11:03:31 UTC; 42s ago
       Docs: https://caddyserver.com/docs/
   Main PID: 2356 (caddy)
      Tasks: 8 (limit: 2242)
     Memory: 7.8M
        CPU: 31ms
     CGroup: /system.slice/caddy.service
             ??2356 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.4061167,"msg":"using provided configuration","config_file":"/etc/cadd>
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.4079537,"logger":"admin","msg":"admin endpoint started","address":"lo>
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"warn","ts":1668942211.4082074,"logger":"http","msg":"server is listening only on the HTTP p>
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.4085367,"logger":"http.log","msg":"server running","name":"srv0","pro>
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.4088042,"msg":"autosaved config (load with --resume flag)","file":"/v>
Nov 20 11:03:31 ubuntu2204 systemd[1]: Started Caddy.
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.419063,"logger":"tls.cache.maintenance","msg":"started background cer>
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.4192455,"logger":"tls","msg":"cleaning storage unit","description":"F>
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.419398,"logger":"tls","msg":"finished cleaning storage units"}
Nov 20 11:03:31 ubuntu2204 caddy[2356]: {"level":"info","ts":1668942211.4197013,"msg":"serving initial configuration"}

Habilitar el soporte PHP en Caddy

En primer lugar, instala PHP y otras extensiones necesarias mediante el siguiente comando:

apt-get install php-fpm php-mysql php-curl php-gd php-mbstring php-common php-xml php-xmlrpc -y

Tras instalar PHP, edita el archivo de configuración PHP-FPM y cambia el usuario y grupo por defecto por caddy:

nano /etc/php/8.1/fpm/pool.d/www.conf

Busca y sustituye el nombre de usuario y grupo de www-data por caddy:

user = caddy
group = caddy
listen.owner = caddy
listen.group = caddy

Guarda y cierra el archivo y reinicia el servicio PHP-FPM para aplicar los cambios:

systemctl restart php8.1-fpm

Crear el archivo de configuración del host virtual de caddy

El archivo de configuración del host virtual por defecto de Caddy se encuentra en /etc/caddy/Caddyfile.

Edita el archivo /etc/caddy/Caddyfile con el siguiente comando:

nano /etc/caddy/Caddyfile

Elimina todas las líneas y añade las siguientes:

caddy.example.com:80 {
    root * /usr/share/caddy/
    encode gzip zstd
    php_fastcgi unix//run/php/php8.1-fpm.sock
}

Guarda y cierra el archivo y reinicia el servicio Caddy para aplicar los cambios:

systemctl restart caddy

A continuación, crea un archivo PHP de ejemplo para Caddy con el siguiente comando:

nano /usr/share/caddy/info.php

Añade las siguientes líneas:

<?php

phpinfo();
?>

Guarda y cierra el archivo cuando hayas terminado.

Verifica la compatibilidad de Caddy con PHP

Ahora, abre tu navegador web y accede al sitio web de Caddy utilizando la URL http://caddy.example.com/info.php. Deberías ver la página PHP en la siguiente pantalla:

PHP en servidor web Caddy

Conclusión

En este post, hemos explicado cómo instalar y configurar el servidor web Caddy en Ubuntu 22.04. Ahora puedes empezar a crear y alojar tu propio sitio web utilizando el servidor web Caddy. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...