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