Caddy est un serveur Web gratuit, open-source, léger et moderne écrit en langage Go. Vous pouvez utiliser Caddy comme serveur de fichiers, serveur dynamique et proxy inverse évolutif. Vous pouvez étendre les fonctionnalités du serveur via des plugins. Caddy est livré avec un large éventail de fonctionnalités, dont certaines sont répertoriées ci-dessous :
- Hébergement virtuel
- HTTPS automatique via Let's Encrypt
- Prend en charge HTTP/2
- Extensible avec des plugins
- Fonctionne sans aucune dépendance externe
Dans cet article, nous vous montrerons comment installer le serveur Web Caddy avec prise en charge de PHP sur Rocky Linux 8.
Prérequis
- Un serveur exécutant Rocky Linux 8 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Rocky Linux 8 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
dnf update -y
Étape 2 - Installer le serveur Web Caddy
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy
Une fois le référentiel activé, vous pouvez installer le serveur Web Caddy avec la commande suivante :
dnf install caddy -y
Une fois le Caddy installé, vérifiez la version du Caddy à l'aide de la commande suivante :
caddy version
Exemple de sortie :
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
Ensuite, démarrez le service Caddy et activez-le pour qu'il démarre au redémarrage du système :
systemctl start caddy systemctl enable caddy
Maintenant, ouvrez votre navigateur Web et accédez au serveur Web Caddy en utilisant l'URL http://your-server-ip . Vous devriez voir la page de test du Caddie sur l'écran suivant :
Étape 3 - Créer un nouveau site sur Caddy
Commencez par créer une structure de répertoires pour le nouveau site Web à l'aide de la commande suivante :
mkdir -p /var/www/example.com mkdir /var/log/caddy
Ensuite, définissez la propriété appropriée sur le nouveau site Web :
chown caddy:caddy /var/www/example.com chown caddy:caddy /var/log/caddy
Créez ensuite une page index.html pour le nouveau site Web :
nano /var/www/example.com/index.html
Ajoutez les lignes suivantes :
<!DOCTYPE html> <html> <head> <title>Caddy Web Server</title> </head> <body> <h1>This is my first web page on Caddy!</h1> </body> </html>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Étape 4 - Créer un fichier de configuration d'hôte virtuel
Ensuite, vous devrez modifier le fichier de configuration de Caddy pour héberger le nouveau site Web. Vous pouvez le modifier avec la commande suivante :
nano /etc/caddy/Caddyfile
Supprimez toutes les lignes et ajoutez les lignes suivantes :
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 }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, validez le fichier de configuration de Caddy :
caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile
Vous devriez voir le résultat suivant :
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
Ensuite, redémarrez le service Caddy pour appliquer les modifications :
systemctl restart caddy
Vous pouvez également vérifier le service Caddy à l'aide de la commande suivante :
systemctl status caddy
Vous obtiendrez le résultat suivant :
● 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
Maintenant, ouvrez votre navigateur Web et accédez au site Web de Caddy à l'aide de l'URL http://test.example.com . Vous devriez voir votre site Web sur l'écran suivant :
Étape 5 - Activer la prise en charge de PHP sur le serveur Web Caddy
Tout d'abord, vous devrez installer PHP et les autres extensions requises sur votre serveur. Vous pouvez tous les installer avec la commande suivante :
dnf install php-fpm php-cli php-gd -y
Une fois tous les packages installés, modifiez le fichier de configuration de Caddy :
nano /etc/caddy/Caddyfile
Définissez l'emplacement php_fastcgi comme indiqué ci-dessous :
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 }
Enregistrez et fermez le fichier, puis modifiez le fichier PHP-FPM :
nano /etc/php-fpm.d/www.conf
Modifiez les lignes suivantes :
user = caddy group = caddy listen.acl_users = apache,nginx,caddy
Enregistrez et fermez le fichier, puis démarrez le service PHP-FPM et activez-le au redémarrage du système :
systemctl start php-fpm systemctl enable php-fpm
Ensuite, créez un exemple de page info.php :
nano /var/www/example.com/info.php
Ajoutez la ligne suivante :
<?php phpinfo(); ?>
Enregistrez et fermez le fichier, puis ouvrez votre navigateur Web et accédez à la page info.php en utilisant l'URL http://test.example.com/info.php . Vous obtiendrez la page suivante :
Conclusion
Dans le guide ci-dessus, nous avons expliqué comment installer Caddy avec PHP sur Rocky Linux 8. Caddy est une très bonne alternative à Apache et Nginx. Vous devriez l'essayer dans l'environnement de production - lancez-vous sur votre serveur privé virtuel d'Atlantic.Net !