Caddy ist ein kostenloser, leichtgewichtiger, moderner Open-Source-Webserver, der in der Go-Sprache geschrieben ist. Sie können Caddy als Dateiserver, dynamischen Server und skalierbaren Reverse-Proxy verwenden. Sie können die Serverfunktionalität über Plugins erweitern. Caddy verfügt über eine Vielzahl von Funktionen, von denen einige unten aufgeführt sind:
- Virtuelles Hosting
- Automatisches HTTPS über Let’s Encrypt
- HTTP/2 unterstützen
- Erweiterbar mit Plugins
- Läuft ohne externe Abhängigkeiten
In diesem Beitrag zeigen wir Ihnen, wie Sie den Caddy-Webserver mit PHP-Unterstützung auf Rocky Linux 8 installieren.
Voraussetzungen
- Ein Server, auf dem Rocky Linux 8 auf der Atlantic.Net Cloud Platform ausgeführt wird
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Rocky Linux 8 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2 – Caddy-Webserver installieren
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy
Sobald das Repository aktiviert ist, können Sie den Caddy-Webserver mit dem folgenden Befehl installieren:
dnf install caddy -y
Sobald der Caddy installiert ist, überprüfen Sie die Caddy-Version mit dem folgenden Befehl:
caddy version
Beispielausgabe:
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
Starten Sie als Nächstes den Caddy-Dienst und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:
systemctl start caddy systemctl enable caddy
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://your-server-ip auf den Caddy-Webserver zu . Sie sollten die Caddy-Testseite auf dem folgenden Bildschirm sehen:
Schritt 3 – Erstellen Sie eine neue Website auf Caddy
Erstellen Sie zunächst mit dem folgenden Befehl eine Verzeichnisstruktur für die neue Website:
mkdir -p /var/www/example.com mkdir /var/log/caddy
Legen Sie als Nächstes die ordnungsgemäße Eigentümerschaft für die neue Website fest:
chown caddy:caddy /var/www/example.com chown caddy:caddy /var/log/caddy
Erstellen Sie als Nächstes eine index.html-Seite für die neue Website:
nano /var/www/example.com/index.html
Fügen Sie die folgenden Zeilen hinzu:
<!DOCTYPE html> <html> <head> <title>Caddy Web Server</title> </head> <body> <h1>This is my first web page on Caddy!</h1> </body> </html>
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Schritt 4 – Erstellen Sie eine virtuelle Host-Konfigurationsdatei
Als Nächstes müssen Sie die Caddy-Konfigurationsdatei bearbeiten, um die neue Website zu hosten. Sie können es mit dem folgenden Befehl bearbeiten:
nano /etc/caddy/Caddyfile
Entfernen Sie alle Zeilen und fügen Sie die folgenden Zeilen hinzu:
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 }
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Validieren Sie als Nächstes die Caddy-Konfigurationsdatei:
caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile
Sie sollten die folgende Ausgabe sehen:
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
Starten Sie als Nächstes den Caddy-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart caddy
Sie können den Caddy-Dienst auch mit dem folgenden Befehl überprüfen:
systemctl status caddy
Sie erhalten die folgende Ausgabe:
● 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
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://test.example.com auf die Caddy-Website zu . Sie sollten Ihre Website auf dem folgenden Bildschirm sehen:
Schritt 5 – Aktivieren Sie die PHP-Unterstützung auf dem Caddy-Webserver
Zuerst müssen Sie PHP und andere erforderliche Erweiterungen auf Ihrem Server installieren. Sie können alle mit dem folgenden Befehl installieren:
dnf install php-fpm php-cli php-gd -y
Sobald alle Pakete installiert sind, bearbeiten Sie die Caddy-Konfigurationsdatei:
nano /etc/caddy/Caddyfile
Definieren Sie den Speicherort von php_fastcgi wie unten gezeigt:
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 }
Speichern und schließen Sie die Datei und bearbeiten Sie dann die PHP-FPM-Datei:
nano /etc/php-fpm.d/www.conf
Ändern Sie die folgenden Zeilen:
user = caddy group = caddy listen.acl_users = apache,nginx,caddy
Speichern und schließen Sie die Datei, starten Sie dann den PHP-FPM-Dienst und ermöglichen Sie ihm, beim Systemneustart zu starten:
systemctl start php-fpm systemctl enable php-fpm
Erstellen Sie als Nächstes eine Beispielseite info.php:
nano /var/www/example.com/info.php
Fügen Sie die folgende Zeile hinzu:
<?php phpinfo(); ?>
Speichern und schließen Sie die Datei, öffnen Sie dann Ihren Webbrowser und greifen Sie über die URL http://test.example.com/info.php auf die Seite info.php zu . Sie erhalten folgende Seite:
Schlussfolgerung
In der obigen Anleitung haben wir erklärt, wie man Caddy mit PHP auf Rocky Linux 8 installiert. Caddy ist eine sehr gute Alternative zu Apache und Nginx. Sie sollten es in der Produktionsumgebung ausprobieren – starten Sie auf Ihrem Virtual Private Server von Atlantic.Net!