Post

Caddy serveur + PHP sur Debian 12 bookworm

Caddy serveur + PHP sur Debian 12 bookworm

Caddy est un serveur Web open source écrit en Go. Il est connu pour sa simplicité et sa facilité d’utilisation, et il est particulièrement célèbre pour sa prise en charge automatique du HTTPS.

Caddy Debian

Installer et configurer le serveur Web Caddy sur Debian 12 Bookworm . Caddy est un serveur Web simple et sécurisé doté de fonctionnalités étonnantes utiles pour l’hébergement de sites Web. L’une des fonctionnalités étonnantes est qu’il peut obtenir et gérer automatiquement les certificats TLS de Let’s Encrypt pour activer HTTPS et inclut la prise en charge de HTTP/2.

Installez les clés requises et le transport HTTPS

Les packages debian-keyring et debian-archive-keyring contiennent les clés d’archive de l’archive Debian, garantissant l’authenticité des packages téléchargés à partir des référentiels Debian. Le package apt-transport-https permet au gestionnaire de packages APT de récupérer des packages via HTTPS, garantissant une communication sécurisée.

1
sudo apt install curl debian-keyring debian-archive-keyring apt-transport-https

Ces commandes rafraîchiront la liste des paquets et installeront les outils nécessaires pour ajouter le dépôt Caddy et gérer les connexions HTTPS.

Installation de Caddy sur Debian 12.

Ensuite, nous ajouterons le dépôt officiel de Caddy à notre système. Cela garantit que nous avons accès à la dernière version de Caddy et peut facilement la mettre à jour à l’avenir. Suivez ces étapes :

1
2
3
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
  • curl -1sLf: télécharge les données à partir d’une URL.
  • Les indicateurs -1sLf garantissent que l’opération suit les redirections ( L), échoue silencieusement en cas d’erreurs du serveur ( f) et utilise des connexions sécurisées ( 1s).
  • URL 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key': Il s’agit de l’adresse où se trouve la clé GPG du référentiel Caddy.
  • | : redirige la clé téléchargée vers la commande suivante.

Mettre à jour l’index des paquets pour reconnaître le nouveau dépôt :

1
sudo apt update

Installez Caddy

Avec le dépôt ajouté, nous pouvons maintenant installer Caddy en utilisant le gestionnaire de paquets APT. Exécutez la commande suivante :

1
sudo apt install caddy

Cela installera le serveur Web Caddy sur votre système.

Pour vérifier si Caddy est correctement installé, vous pouvez exécuter : caddy version

1
v2.10.0 h1:fonubSaQKF1YANl8TXqGcn4IbIRUDdfAkpcsfI/vX5U=

L’installation de Caddy Web Server est maintenant terminée. Vous avez téléchargé et installé Caddy avec succès, et il est prêt à être configuré pour l’hébergement de sites Web.

Vérifier que le serveur Web Caddy est actif et fonctionne sur Debian 12

1
sudo systemctl status caddy
1
2
3
4
5
6
7
8
9
10
● caddy.service - Caddy
     Loaded: loaded (/lib/systemd/system/caddy.service; enabled; preset: enabled)
     Active: active (running) since Wed 2025-04-23 11:02:19 UTC; 6min ago
       Docs: https://caddyserver.com/docs/
   Main PID: 13259 (caddy)
      Tasks: 6 (limit: 764)
     Memory: 12.0M
        CPU: 354ms
     CGroup: /system.slice/caddy.service
             └─13259 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Configurer Caddy.

Caddy utilise un fichier de configuration appelé Caddyfile pour définir comment il doit servir votre site Web. Laissez créer un fichier Caddyfile de base pour servir un site statique:

1
sudo mkdir /var/www/example.com

Créer un fichier index.html dans le répertoire :

1
echo "Hello, World!" | sudo tee /var/www/example.com/index.html

Ouvrez un nouveau fichier Caddy en utilisant un éditeur de texte (p. ex. nano):

1
sudo nano /etc/caddy/Caddyfile

Ajouter le contenu suivant au panier:

1
2
3
4
example.com {
    root * /var/www/example.com
    file_server
}

Enregistrer le fichier et démarrer Caddy:

1
sudo systemctl start caddy

Testez votre configuration en accédant à http://exemple.com dans votre navigateur Web. Vous devriez voir le message “Hello, World!”.

Autoriser les connexions HTTP et HTTPS dans le pare-feu UFW

Pour permettre à Caddy de servir des sites Web à l’aide des protocoles HTTP et HTTPS , vous devez accorder l’accès aux ports 80 et 443. Exécutez les commandes suivantes pour autoriser les ports requis dans le pare-feu UFW

1
sudo ufw allow proto tcp from any to any port 80,443

Configurer PHP pour le serveur Web Caddy

Pour installer la version de 8 de php, ajouter le dépôt sury.

1
2
3
sudo apt install -y lsb-release apt-transport-https ca-certificates wget
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" |sudo tee /etc/apt/sources.list.d/php.list

Mise à jour des dépôts :

1
sudo apt update && sudo apt upgrade -y

PHP8.2 requis pour nextcloud hub:

1
sudo apt -y install php8.2 php8.2-fpm php8.2-sqlite3 php8.2-cli php8.2-gd php8.2-imap php8.2-mysql php8.2-soap php8.2-apcu php8.2-common php8.2-gmp  php8.2-intl php8.2-opcache php8.2-xml php8.2-curl php8.2-igbinary php8.2-readline  php8.2-zip php8.2-bcmath php8.2-imagick php8.2-mbstring php8.2-redis imagemagick libmagickcore-6.q16-6-extra php8.2-bz2 php8.2-smbclient

Vérifiez votre installation PHP en vérifiant sa version :

1
php --version

Sortie

1
2
3
4
PHP 8.2.19 (cli) (built: May 14 2024 05:43:53) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.19, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.19, Copyright (c), by Zend Technologies

Ensuite, vous devez modifier le fichier de configuration PHP-FPM et modifier l’utilisateur et le groupe par défaut avec Caddy.

Ouvrez le fichier avec votre éditeur de texte préféré

1
sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Dans le fichier, recherchez les lignes ci-dessous et changez leur valeur en Caddy :

1
2
3
4
user = caddy
group = caddy
listen.owner = caddy
listen.group = caddy

Redémarrer PHP-FPM pour appliquer les modifications :

1
sudo systemctl restart php8.2-fpm

Configuration Caddy PHP

modifier le fichier de configuration de l’hôte virtuel Caddy.

Le fichier de configuration de l’hôte virtuel par défaut de Caddy se trouve à l’adresse /etc/caddy/Caddyfile

1
sudo nano /etc/caddy/Caddyfile

Supprimez les lignes du fichier et ajoutez les lignes suivantes au fichier avec votre nom de domaine

1
2
3
4
5
icevps.xyz:80 {
    root * /usr/share/caddy/
    encode gzip zstd
    php_fastcgi unix//run/php/php8.2-fpm.sock
}

Redémarrez le service Caddy sur Debian 12 pour appliquer les modifications :

1
sudo systemctl restart caddy

Ensuite, créez un exemple de fichier PHP pour Caddy avec la commande suivante :

1
sudo nano /usr/share/caddy/info.php

Ajoutez le contenu suivant au fichier :

1
2
3
<?php
phpinfo();
?>

Vous pouvez accéder au site Caddy en tapant votre nom de domaine dans votre navigateur web suivi de info.php :

http://icevps.xyz/info.php

Vous devriez voir vos informations PHP sur Debian 12.

Lorsque vous avez fini de lire vos informations PHP, il est préférable de supprimer votre fichier PHP pour plus de sécurité.

1
sudo rm -rf /usr/share/caddy/info.php

Pour plus d’informations, vous pouvez visiter la documentation Caddy

Cet article est sous licence CC BY 4.0 par l'auteur.