Caddy è un server web gratuito, open source, leggero e moderno scritto nel linguaggio Go. È possibile utilizzare Caddy come file server, server dinamico e proxy inverso scalabile. È possibile estendere la funzionalità del server tramite plug-in. Caddy è dotato di un'ampia gamma di funzioni, alcune delle quali sono elencate di seguito:
- Hosting virtuale
- HTTPS automatico tramite Let's Encrypt
- Supporta HTTP/2
- Estendibile con i plugin
- Esegui senza dipendenze esterne
In questo post, ti mostreremo come installare il server web Caddy con supporto PHP su Rocky Linux 8.
Prerequisiti
- Un server che esegue Rocky Linux 8 sulla piattaforma Atlantic.Net Cloud
- Una password di root configurata sul tuo server
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Rocky Linux 8 come sistema operativo con almeno 2 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Una volta effettuato l'accesso al server, eseguire il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.
dnf update -y
Passaggio 2:installazione del server Web Caddy
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy
Una volta abilitato il repository, puoi installare il server web Caddy con il seguente comando:
dnf install caddy -y
Una volta installato il Caddy, verifica la versione del Caddy utilizzando il seguente comando:
caddy version
Esempio di output:
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
Quindi, avvia il servizio Caddy e abilitalo per l'avvio al riavvio del sistema:
systemctl start caddy systemctl enable caddy
Ora apri il tuo browser web e accedi al server web Caddy utilizzando l'URL http://your-server-ip . Dovresti vedere la pagina del test di Caddy nella schermata seguente:
Fase 3:crea un nuovo sito su Caddy
Innanzitutto, crea una struttura di directory per il nuovo sito Web utilizzando il seguente comando:
mkdir -p /var/www/example.com mkdir /var/log/caddy
Quindi, imposta la proprietà corretta sul nuovo sito web:
chown caddy:caddy /var/www/example.com chown caddy:caddy /var/log/caddy
Quindi, crea una pagina index.html per il nuovo sito web:
nano /var/www/example.com/index.html
Aggiungi le seguenti righe:
<!DOCTYPE html> <html> <head> <title>Caddy Web Server</title> </head> <body> <h1>This is my first web page on Caddy!</h1> </body> </html>
Salva e chiudi il file quando hai finito.
Fase 4:crea un file di configurazione dell'host virtuale
Successivamente, dovrai modificare il file di configurazione di Caddy per ospitare il nuovo sito Web. Puoi modificarlo con il seguente comando:
nano /etc/caddy/Caddyfile
Rimuovi tutte le righe e aggiungi le seguenti righe:
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 }
Salva e chiudi il file quando hai finito. Quindi, convalida il file di configurazione di Caddy:
caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile
Dovresti vedere il seguente output:
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
Quindi, riavvia il servizio Caddy per applicare le modifiche:
systemctl restart caddy
Puoi anche controllare il servizio Caddy usando il seguente comando:
systemctl status caddy
Otterrai il seguente output:
● 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
Ora apri il tuo browser web e accedi al sito web di Caddy utilizzando l'URL http://test.example.com . Dovresti vedere il tuo sito web nella schermata seguente:
Passaggio 5:abilitare il supporto PHP su Caddy Web Server
Innanzitutto, dovrai installare PHP e altre estensioni richieste sul tuo server. Puoi installarli tutti con il seguente comando:
dnf install php-fpm php-cli php-gd -y
Una volta installati tutti i pacchetti, modifica il file di configurazione di Caddy:
nano /etc/caddy/Caddyfile
Definisci la posizione di php_fastcgi come mostrato di seguito:
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 }
Salva e chiudi il file, quindi modifica il file PHP-FPM:
nano /etc/php-fpm.d/www.conf
Modifica le seguenti righe:
user = caddy group = caddy listen.acl_users = apache,nginx,caddy
Salva e chiudi il file, quindi avvia il servizio PHP-FPM e abilitalo all'avvio al riavvio del sistema:
systemctl start php-fpm systemctl enable php-fpm
Quindi, crea una pagina info.php di esempio:
nano /var/www/example.com/info.php
Aggiungi la seguente riga:
<?php phpinfo(); ?>
Salva e chiudi il file, quindi apri il browser web e accedi alla pagina info.php utilizzando l'URL http://test.example.com/info.php . Otterrai la seguente pagina:
Conclusione
Nella guida sopra, abbiamo spiegato come installare Caddy con PHP su Rocky Linux 8. Caddy è un'ottima alternativa ad Apache e Nginx. Dovresti provarlo nell'ambiente di produzione:inizia sul tuo server privato virtuale da Atlantic.Net!