Cómo instalar Caddy Web Server con PHP-FPM en Ubuntu 16.04

by Luigi Nori Date: 30-01-2020 caddy https apache nginx letsencrypt ssl fpm php

El Caddy o Caddy web server es un servidor web de código abierto habilitado para HTTP/2 escrito en Go. Caddy puede funcionar en varios sistemas, incluyendo los que funcionan con Linux, Windows, Mac OS, Android, y sistemas operativos BSD. Caddy tiene muchas características y puede instalarse como servidor web y como proxy inverso para su aplicación. Las características más notables del servidor web de Caddy son el HTTPS automático activado por defecto sin configuración extra.

En este tutorial, os mostraré paso a paso cómo instalar y configurar el servidor web del Caddy con PHP-FPM 7.x en Ubuntu 16.04. Instalaremos Caddy en el entorno local, y luego configuraremos PHP-FPM para aplicaciones basadas en PHP.
 

Lo que haremos

  1. Instalar Caddy web server
  2. Configurar Caddy web server
  3. Ejecutar Caddy como un servicio en Systemd en Ubuntu 16.04
  4. Instalar PHP y PHP-FPM 7.0
  5. Configurar Caddy web server con PHP-FPM
  6. Testear
     

Instalar Caddy web server

En este paso, instalaremos el servidor web del Caddy usando el script de instalación. El script descargará automáticamente el archivo binario y lo extraerá al directorio bin.

Descarga el script de instalación y hazlo ejecutable.

wget https://getcaddy.com -O getcaddy
chmod +x getcaddy

Ahora ejecuta el script de instalación con sudo.

sudo ./getcaddy personal http.ipfilter,http.ratelimit

Nota:

  • getcaddy = script de instalación del caddy.
  • personal = licencia para nuestra instalación.
  • http.ipfileter ... = incluyen la instalación de plugins para el caddy.

Espera la instalación del servidor web del caddy y obtendrás el resultado. El servidor web del Caddy ha sido instalado en Ubuntu 16.04.
 

Configuración básica del servidor web Caddy

En este paso, configuraremos el servidor web Caddy. Crearemos un nuevo usuario llamado 'caddy', crearemos un nuevo directorio para el archivo de configuración de caddy, un nuevo directorio para los archivos de registro de caddy y un nuevo directorio para el directorio raíz web de Caddy.

Crear un nuevo usuario 'caddy' usando la opción '/bin/false' como se muestra abajo.

useradd -M -s /bin/false caddy

Ahora ejecuta el siguiente comando mkdir para crear el directorio de caddy.

mkdir -p /etc/caddy
mkdir -p /var/log/caddy
mkdir -p /var/www/html

Y cambiar la ownership(propiedad) al usuario del caddy.

chown -R caddy:root /etc/caddy /var/log/caddy

A continuación, crearemos un nuevo archivo de configuración del caddy llamado Caddyfile . Ve al directorio /etc/caddy y crea la configuración con el comando vim .

cd /etc/caddy/
vim Caddyfile

Pega la configuración básica de caddy allí.

http://hakase-labs.co {
root /var/www/html
log /var/log/caddy/hakase-labs.log
tls off
gzip
}

Salva y sale.

Nota:

  • tls off = estamos ejecutando el caddy en el servidor local, si estás en el servidor en vivo, habilita la opción.

La configuración básica del servidor web del Caddy ha sido completada.
 

Ejecutar Caddy como un servicio en Systemd en Ubuntu 16.04

En este paso, ejecutaremos el servidor web del caddy como servicio en el sistema systemd y crearemos el archivo index.html para nuestro servidor web del caddy.

Crea un nuevo archivo de servicio llamado caddy.service usando VIM..

vim /etc/systemd/system/caddy.service

Pega la siguiente configuración allí.

[Unit]
Description=Caddy HTTP/2 web server
[Service]
User=caddy
Group=caddy
Environment=CADDYPATH=/etc/caddy
ExecStart=/usr/local/bin/caddy -agree=true -log=/var/log/caddy/caddy.log -conf=/etc/caddy/Caddyfile -root=/dev/null
ExecReload=/bin/kill -USR1 $MAINPID
LimitNOFILE=1048576
LimitNPROC=64
[Install]
WantedBy=multi-user.target

Guarda y sale

Ahora recarga el programa de systemd y empieza el servicio de caddy usando el comando systemctl como se muestra a continuación.

systemctl daemon-reload
systemctl start caddy

Habilitarlo para que se lance siempre en el arranque del sistema.

systemctl enable caddy

El servidor web del Caddy está funcionando como un servicio en Ubuntu 16.04. A continuación, crearemos un nuevo archivo index.html bajo el directorio raíz de la web /var/www/html .

Ve a ese directorio y crea el archivo index.html usando los siguientes comandos.

cd /var/www/html
echo '<h1><center>Caddy web server</center></h1>' > index.html

Ahora cambia el dueño del archivo al usuario y grupo de "caddy".

chown -R caddy:caddy /var/www/html

Se ha creado el archivo index.html. Abre el navegador web y escribe la dirección del nombre de dominio que has escrito en la configuración de Caddyfile , el mío es:

http://ma-no.org/

Y obtendrás así la página de índice que hemos creado.
 

Instalar PHP y PHP-FPM 7.0

En este paso, instalaremos los paquetes PHP-FPM del repositorio de Ubuntu.

Ejecuta el comando apt abajo.

sudo apt install -y php7.0-fpm php7.0-cli curl

Después de que la instalación se complete, configuraremos el archivo de configuración para PHP-FPM.

Ve al directorio /etc/php/7.0/fpm y edita el archivo de configuración de pool www.conf usando vim.

cd /etc/php/7.0/fpm
vim pool.d/www.conf

Descomenta estas líneas abajo.

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Guarda y sale.

Ahora añade el usuario caddy al grupo www-data .

usermod -a -G www-data caddy

Inicia el servicio PHP-FPM y habilítalo para que se lance cada vez que arranque el boot del sistema.

systemctl start php7.0-fpm
systemctl enable php7.0-fpm

La instalación y configuración de PHP-FPM para la instalación del servidor web de nuestro Caddy ha sido completada.

Revisa el proceso del archivo de sockets PHP-FPM usando el comando netstat a continuación.

netstat -pl | grep php


Configurar el servidor web de Caddy con PHP-FPM

Después de la instalación y configuración de PHP-FPM, añadiremos el soporte de PHP-FPM al servidor web Caddy.

Ve al directorio de configuración /etc/caddy y edita el archivo de configuración Caddyfile usando vim.

cd /etc/caddy
vim Caddyfile

Ahora agrega la siguiente configuración PHP-FPM para el caddy bajo el paréntesis de tu nombre de dominio como se indica a continuación.

http://hakase-labs.co {
root /var/www/html
log /var/log/caddy/hakase-labs.log
errors /var/log/caddy/errors.log
tls off
gzip
# PHP-FPM Configuration for Caddy
fastcgi / /run/php/php7.0-fpm.sock php {
ext .php
split .php
index index.php
}
}

Guarda y sale.

Reinicia el servidor web caddy y el servicio PHP-FPM..

systemctl restart caddy
systemctl restart php7.0-fpm

La configuración del servidor web Caddy con PHP-FPM ha sido completada.
 

Prueba del servidor

Ve al directorio raíz de la web /var/ww/html y crea el archivo phpinfo info.php .

cd /var/www/html
echo '<?php phpinfo(); ?>' > info.php

Abre tu navegador y escribe la instalación de la URL del servidor web Caddy como se indica a continuación.

http://ma-no.org/info.php

Y obtendrás la página de información de PHP. La instalación para el servidor web Caddy con PHP-FPM en Ubuntu 16.04 se ha completado con éxito.
 

Referencias

 
by Luigi Nori Date: 30-01-2020 caddy https apache nginx letsencrypt ssl fpm php visitas : 3527  
 
Luigi Nori

Luigi Nori

He has been working on the Internet since 1994 (practically a mummy), specializing in Web technologies makes his customers happy by juggling large scale and high availability applications, php and js frameworks, web design, data exchange, security, e-commerce, database and server administration, ethical hacking. He happily lives with @salvietta150x40, in his (little) free time he tries to tame a little wild dwarf with a passion for stars.

 
 
 

Artículos relacionados

Muchos sitios web no se abrirán en los viejos teléfonos inteligentes Android en 2021

Si tienes un viejo teléfono inteligente Android, este puede ser el momento adecuado para actualizar, ya que no podrás acceder a una gran parte de la web el año que…

Solucionar Problemas html acentos y eñes: charset UTF-8 / ISO-8859-1 en PHP

La codificación de las páginas web (charset) es un problema recurrente para los webmasters, porque: Depende del editor en que se haya hecho la web, si en el trabajamos por defecto…

Como lograr instalar certificados SSL gratis en Wordpress con Cloudflare

Este artículo es parte de una serie de artículos sobre la optimización de Wordpress con Cloudflare y algunos tipos de servidores, se aconseja leer estos artículos antes: Speed up your site…

Temblad. Listos para la nueva actualización de Google Penguin?

Listos para otro cambio? BruceClay.com, como un vigente, nos advierte: “La próxima actualización de Google Penguin, de la que se espera llegue a finales de año, eliminará los enlaces spam de manera…

Certificados HTTPS gratis para todos!! Con Let's Encrypt

Let's Encrypt ha abierto al público la beta para generar y obtener certificados https gratis, permitiendo que cualquiera pueda obtener certificados gratuitos TLS y configurar sitios web en HTTPS en…

Winginx, servidor nginx completo para windows

Cuando necesitamos montar un servidor Apache en Windows o Mac tenemos opciones de WAMP y MAMP muy populares como por ejemplo XAMPP, pero se hacen mas populares servidores como Nginx.  Nginx…

Tutorial Intermedio de mod_rewrite

Con el módulo mod-rewrite, se pueden editar muchas tareas del servidor o los requisitos previos para las tareas de redireccionamiento. Las reglas están archivadas en el archivo .htaccess. El manejo…

Clicky