Cómo instalar el servidor web Caddy en Debian 11

Caddy es un servidor web gratuito, de código abierto y moderno, escrito en lenguaje GO. Es un servidor web ligero y con soporte comercial que admite los protocolos HTTP/2 y experimental HTTP/3. Puede ejecutarse en cualquier lugar sin dependencias externas y se amplía mediante plugins. Está diseñado teniendo en cuenta la seguridad y ofrece una serie de funciones útiles para alojar sitios web.

En este tutorial, explicaré cómo instalar el servidor web Caddy en Debian 11.

Requisitos previos

  • Un servidor con Debian 11.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar Caddy en Debian 11

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

En primer lugar, instala todas las dependencias necesarias con 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' | apt-key add -

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, verifica la versión de Caddy con el siguiente comando:

caddy version

Obtendrás la siguiente salida:

v2.4.5 h1:P1mRs6V2cMcagSPn+NWpD+OEYUYLIf6ecOa48cFGeUg=

Para permitir que el binario de Caddy se conecte a puertos privilegiados como el 80 y el 443, ejecuta el siguiente comando:

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

Gestionar el servicio Caddy

Puedes gestionar el servicio Caddy utilizando el systemd.

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 Sat 2021-10-16 14:34:44 UTC; 2min 30s ago
       Docs: https://caddyserver.com/docs/
   Main PID: 2370 (caddy)
      Tasks: 7 (limit: 2341)
     Memory: 17.5M
        CPU: 30ms
     CGroup: /system.slice/caddy.service
             ??2370 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Oct 16 14:34:44 debian11 caddy[2370]: JOURNAL_STREAM=8:16308
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.658216,"msg":"using provided configuration","config_file":"/etc/caddy/Ca>
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.6623824,"logger":"admin","msg":"admin endpoint started","address":"tcp/l>
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.6626618,"logger":"http","msg":"server is listening only on the HTTP port>
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.663054,"msg":"autosaved config (load with --resume flag)","file":"/var/l>
Oct 16 14:34:44 debian11 systemd[1]: Started Caddy.
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.6655433,"msg":"serving initial configuration"}
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.6656897,"logger":"tls","msg":"cleaning storage unit","description":"File>
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.6657932,"logger":"tls","msg":"finished cleaning storage units"}
Oct 16 14:34:44 debian11 caddy[2370]: {"level":"info","ts":1634394884.6694443,"logger":"tls.cache.maintenance","msg":"started background certi>

Habilitar el soporte de 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

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

nano /etc/php/7.4/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 luego reinicia el servicio PHP-FPM para aplicar los cambios:

systemctl restart php7.4-fpm

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

El archivo de configuración del host virtual de Caddy por defecto 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/php7.4-fpm.sock
}

Guarda y cierra el archivo y luego 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.

Accede al sitio web de Caddy

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:

Página de información de PHP

Conclusión

Enhorabuena! has instalado con éxito el servidor web de Caddy en Debian 11. Ahora puedes cómo tu propio sitio web utilizando el servidor web Caddy. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...