GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar y configurar el servidor web Caddy con PHP en Rocky Linux 8

Caddy es un servidor web gratuito, de código abierto, ligero y moderno escrito en el lenguaje Go. Puede utilizar Caddy como servidor de archivos, servidor dinámico y proxy inverso escalable. Puede ampliar la funcionalidad del servidor a través de complementos. Caddy viene con una amplia gama de características, algunas de las cuales se enumeran a continuación:

  • Alojamiento virtual
  • HTTPS automático a través de Let's Encrypt
  • Admite HTTP/2
  • Extensible con complementos
  • Se ejecuta sin dependencias externas

En esta publicación, le mostraremos cómo instalar el servidor web Caddy con soporte PHP en Rocky Linux 8.

Requisitos

  • Un servidor que ejecuta Rocky Linux 8 en Atlantic.Net Cloud Platform
  • Una contraseña de root configurada en su servidor

Paso 1:crear el servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Rocky Linux 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

dnf update -y

Paso 2:instalar el servidor web Caddy

dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy

Una vez que el repositorio esté habilitado, puede instalar el servidor web Caddy con el siguiente comando:

dnf install caddy -y

Una vez que Caddy esté instalado, verifique la versión de Caddy usando el siguiente comando:

caddy version

Salida de muestra:

v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=

A continuación, inicie el servicio Caddy y habilítelo para que se inicie al reiniciar el sistema:

systemctl start caddy
systemctl enable caddy

Ahora, abra su navegador web y acceda al servidor web de Caddy usando la URL http://your-server-ip . Debería ver la página de prueba de Caddy en la siguiente pantalla:

Paso 3:crea un nuevo sitio en Caddy

Primero, cree una estructura de directorios para el nuevo sitio web usando el siguiente comando:

mkdir -p /var/www/example.com
mkdir /var/log/caddy

A continuación, establezca la propiedad adecuada en el nuevo sitio web:

chown caddy:caddy /var/www/example.com
chown caddy:caddy /var/log/caddy

A continuación, cree una página index.html para el nuevo sitio web:

nano /var/www/example.com/index.html

Agregue las siguientes líneas:

<!DOCTYPE html>
<html>
<head>
<title>Caddy Web Server</title>
</head>
<body>
<h1>This is my first web page on Caddy!</h1>
</body>
</html>

Guarde y cierre el archivo cuando haya terminado.

Paso 4:crear un archivo de configuración de host virtual

A continuación, deberá editar el archivo de configuración de Caddy para alojar el nuevo sitio web. Puedes editarlo con el siguiente comando:

nano /etc/caddy/Caddyfile

Elimine todas las líneas y agregue las siguientes líneas:

test.example.com:80 {
        root * /var/www/example.com
        file_server
        encode gzip

        log {
             	output file /var/log/caddy/example.access.log
        }

	@static {
                file
                path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.pdf *.webp
        }
	header @static Cache-Control max-age=5184000

}

Guarde y cierre el archivo cuando haya terminado. A continuación, valide el archivo de configuración de Caddy:

caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile

Debería ver el siguiente resultado:

2021/11/17 09:59:04.997	INFO	using provided configuration	{"config_file": "/etc/caddy/Caddyfile", "config_adapter": "caddyfile"}
2021/11/17 09:59:05.000	WARN	input is not formatted with 'caddy fmt'	{"adapter": "caddyfile", "file": "/etc/caddy/Caddyfile", "line": 27}
2021/11/17 09:59:05.000	INFO	http	server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS	{"server_name": "srv0", "https_port": 443}
2021/11/17 09:59:05.001	INFO	http	enabling automatic HTTP->HTTPS redirects	{"server_name": "srv0"}
2021/11/17 09:59:05.001	INFO	tls.cache.maintenance	started background certificate maintenance	{"cache": "0xc00057a8c0"}
2021/11/17 09:59:05.001	INFO	tls.cache.maintenance	stopped background certificate maintenance	{"cache": "0xc00057a8c0"}
Valid configuration

A continuación, reinicie el servicio Caddy para aplicar los cambios:

systemctl restart caddy

También puede verificar el servicio Caddy usando el siguiente comando:

systemctl status caddy

Obtendrá el siguiente resultado:

● caddy.service - Caddy
   Loaded: loaded (/usr/lib/systemd/system/caddy.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-11-17 10:00:23 UTC; 4s ago
     Docs: https://caddyserver.com/docs/
 Main PID: 20077 (caddy)
    Tasks: 6 (limit: 11411)
   Memory: 24.9M
   CGroup: /system.slice/caddy.service
           └─20077 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Nov 17 10:00:23 rockylinux systemd[1]: Started Caddy.
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8054335,"logger":"tls.cache.maintenance","msg":"started background c>
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8054764,"logger":"tls","msg":"cleaning storage unit","description":">
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8055048,"logger":"tls","msg":"finished cleaning storage units"}
Nov 17 10:00:23 rockylinux caddy[20077]: {"level":"info","ts":1637143223.8060036,"logger":"tls.obtain","msg":"lock acquired","identifier":"ex>
Nov 17 10:00:24 rockylinux caddy[20077]: {"level":"error","ts":1637143224.0880945,"logger":"tls.obtain","msg":"could not get certificate from>
Nov 17 10:00:24 rockylinux caddy[20077]: {"level":"info","ts":1637143224.4512274,"logger":"tls.issuance.zerossl","msg":"generated EAB credent>
Nov 17 10:00:25 rockylinux caddy[20077]: {"level":"info","ts":1637143225.7558215,"logger":"tls.issuance.acme","msg":"waiting on internal rate>
Nov 17 10:00:25 rockylinux caddy[20077]: {"level":"info","ts":1637143225.755876,"logger":"tls.issuance.acme","msg":"done waiting on internal >
Nov 17 10:00:27 rockylinux caddy[20077]: {"level":"info","ts":1637143227.8956456,"logger":"tls.issuance.acme.acme_client","msg":"trying to so

Ahora, abra su navegador web y acceda al sitio web de Caddy usando la URL http://test.example.com . Debería ver su sitio web en la siguiente pantalla:

Paso 5:habilite la compatibilidad con PHP en el servidor web Caddy

Primero, deberá instalar PHP y otras extensiones requeridas en su servidor. Puede instalarlos todos con el siguiente comando:

dnf install php-fpm php-cli php-gd -y

Una vez que todos los paquetes estén instalados, edite el archivo de configuración de Caddy:

nano /etc/caddy/Caddyfile

Defina la ubicación de php_fastcgi como se muestra a continuación:

test.example.com:80 {
        root * /var/www/example.com
	php_fastcgi unix//run/php-fpm/www.sock
        file_server
        encode gzip

        log {
             	output file /var/log/caddy/example.access.log
        }

	@static {
                file
                path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.svg *.woff *.pdf *.webp
        }
	header @static Cache-Control max-age=5184000

}

Guarde y cierre el archivo, luego edite el archivo PHP-FPM:

nano /etc/php-fpm.d/www.conf

Cambie las siguientes líneas:

user = caddy
group = caddy
listen.acl_users = apache,nginx,caddy

Guarde y cierre el archivo, luego inicie el servicio PHP-FPM y habilítelo para que se inicie al reiniciar el sistema:

systemctl start php-fpm
systemctl enable php-fpm

A continuación, cree una página de muestra info.php:

nano /var/www/example.com/info.php

Agregue la siguiente línea:

<?php phpinfo();
?>

Guarde y cierre el archivo, luego abra su navegador web y acceda a la página info.php usando la URL http://test.example.com/info.php . Obtendrá la siguiente página:

Conclusión

En la guía anterior, explicamos cómo instalar Caddy con PHP en Rocky Linux 8. Caddy es una muy buena alternativa a Apache y Nginx. Debería probarlo en el entorno de producción:¡comience en su servidor privado virtual desde Atlantic.Net!


Linux
  1. Cómo instalar y configurar Arch Linux como servidor

  2. Cómo instalar y configurar el servidor web Caddy con PHP y MariaDB en Ubuntu 20.04

  3. Cómo instalar y configurar Squid Proxy en Rocky Linux/Alma Linux 8

  4. Cómo instalar y configurar Elasticsearch en Rocky Linux 8

  5. Cómo instalar y configurar el servidor y el cliente NTP de Linux

Cómo instalar el servidor web OpenLiteSpeed ​​con MariaDB y PHP

Cómo instalar y configurar el servidor web Apache en Oracle Linux 8

Cómo instalar y configurar el servidor web Nginx en Oracle Linux 8

¿Cómo instalar y configurar Django en Linux VPS y Servidor Dedicado?

Cómo instalar y configurar Memcached con Apache y PHP

Cómo instalar y configurar el servidor DNS en Linux