Caddy je bezplatný, odlehčený, moderní webový server s otevřeným zdrojovým kódem napsaný v jazyce Go. Caddy můžete použít jako souborový server, dynamický server a škálovatelný reverzní proxy. Funkčnost serveru můžete rozšířit pomocí pluginů. Caddy přichází s širokou škálou funkcí, z nichž některé jsou uvedeny níže:
- Virtuální hosting
- Automatické HTTPS prostřednictvím Let’s Encrypt
- Podpora HTTP/2
- Rozšiřitelné pomocí pluginů
- Běží bez jakýchkoli externích závislostí
V tomto příspěvku vám ukážeme, jak nainstalovat webový server Caddy s podporou PHP na Rocky Linux 8.
Předpoklady
- Server se systémem Rocky Linux 8 na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Krok 1 – Vytvořte cloudový server Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Rocky Linux 8 s alespoň 2 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte na svůj server, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
dnf update -y
Krok 2 – Instalace webového serveru Caddy
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy
Jakmile je úložiště povoleno, můžete nainstalovat webový server Caddy pomocí následujícího příkazu:
dnf install caddy -y
Jakmile je Caddy nainstalován, ověřte verzi Caddy pomocí následujícího příkazu:
caddy version
Ukázkový výstup:
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
Dále spusťte službu Caddy a povolte její spuštění při restartu systému:
systemctl start caddy systemctl enable caddy
Nyní otevřete webový prohlížeč a přejděte na webový server Caddy pomocí adresy URL http://ip-vaseho-serveru . Na následující obrazovce byste měli vidět testovací stránku Caddy:
Krok 3 – Vytvořte nový web na Caddy
Nejprve vytvořte adresářovou strukturu pro nový web pomocí následujícího příkazu:
mkdir -p /var/www/example.com mkdir /var/log/caddy
Dále nastavte správné vlastnictví na novém webu:
chown caddy:caddy /var/www/example.com chown caddy:caddy /var/log/caddy
Dále vytvořte stránku index.html pro nový web:
nano /var/www/example.com/index.html
Přidejte následující řádky:
<!DOCTYPE html> <html> <head> <title>Caddy Web Server</title> </head> <body> <h1>This is my first web page on Caddy!</h1> </body> </html>
Po dokončení uložte a zavřete soubor.
Krok 4 – Vytvořte konfigurační soubor virtuálního hostitele
Dále budete muset upravit konfigurační soubor Caddy, aby hostil nový web. Můžete jej upravit pomocí následujícího příkazu:
nano /etc/caddy/Caddyfile
Odeberte všechny řádky a přidejte následující řádky:
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 }
Po dokončení uložte a zavřete soubor. Dále ověřte konfigurační soubor Caddy:
caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile
Měli byste vidět následující výstup:
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
Poté restartujte službu Caddy, aby se změny projevily:
systemctl restart caddy
Službu Caddy můžete také zkontrolovat pomocí následujícího příkazu:
systemctl status caddy
Získáte následující výstup:
● 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
Nyní otevřete webový prohlížeč a přejděte na web Caddy pomocí adresy URL http://test.example.com . Váš web byste měli vidět na následující obrazovce:
Krok 5 – Povolte podporu PHP na webovém serveru Caddy
Nejprve budete muset nainstalovat PHP a další požadovaná rozšíření na váš server. Všechny je můžete nainstalovat pomocí následujícího příkazu:
dnf install php-fpm php-cli php-gd -y
Jakmile jsou všechny balíčky nainstalovány, upravte konfigurační soubor Caddy:
nano /etc/caddy/Caddyfile
Definujte umístění php_fastcgi, jak je uvedeno níže:
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 }
Uložte a zavřete soubor a poté upravte soubor PHP-FPM:
nano /etc/php-fpm.d/www.conf
Změňte následující řádky:
user = caddy group = caddy listen.acl_users = apache,nginx,caddy
Uložte a zavřete soubor, poté spusťte službu PHP-FPM a povolte její spuštění při restartu systému:
systemctl start php-fpm systemctl enable php-fpm
Dále vytvořte vzorovou stránku info.php:
nano /var/www/example.com/info.php
Přidejte následující řádek:
<?php phpinfo(); ?>
Uložte a zavřete soubor, poté otevřete webový prohlížeč a přejděte na stránku info.php pomocí adresy URL http://test.example.com/info.php . Získáte následující stránku:
Závěr
Ve výše uvedené příručce jsme vysvětlili, jak nainstalovat Caddy s PHP na Rocky Linux 8. Caddy je velmi dobrou alternativou k Apache a Nginx. Měli byste to vyzkoušet v produkčním prostředí – začněte na svém virtuálním privátním serveru od Atlantic.Net!