🡐 Retour à l'index

Caddy

Les groupes

remove apache et ancien php

su -
apt purge apache2

apt list --installed | grep php
apt-get purge 'php7.*'

Voir la version de php installable

apt search php

Adapter

Installer php 8.3

https://www.cloudbooklet.com/how-to-install-or-upgrade-php-8-1-on-debian/
https://tecadmin.net/how-to-install-php-on-debian-11/
https://www.howtoforge.com/how-to-install-php-8-on-debian-11/

apt -y install lsb-release apt-transport-https ca-certificates wget
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
apt update
apt upgrade
apt install php8.3
php -v
apt install php8.3-fpm
service php8.3-fpm start
apt install php8.3-{bcmath,fpm,xml,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi}
et vérifier les modules chargés:
php --modules

Pour vérifier:

ps aux | grep php-fpm
ps aux | grep php

Installer le binaire de caddy

https://ettayeb.fr/guide-dutilisation-dun-serveur-caddy-sous-linux/
https://www.digitalocean.com/community/tutorials/how-to-host-a-website-with-caddy-on-ubuntu-18-04-fr
https://www.howtoforge.com/tutorial/ubuntu-caddy-web-server-installation
https://caddyserver.com/docs/caddyfile/options

Déterminer mon architecture : uname -m

Aller sur https://github.com/caddyserver/caddy/releases
et télécharger le dernier .tar.gz de mon architecture avec le navigateur
ou avec wget https://github.com/caddyserver/caddy/releases/download/v2.8.4/caddy_2.8.4_linux_amd64.tar.gz

Extraire l'archive : sudo tar -C /usr/local/bin/ -xf caddy_2.8.4_linux_amd64.tar.gz caddy

Lancer caddy la page d'aide s'affichera, ensuite

setcap pour lancer caddy sans sudo

Caddy essaie d'écouter sur le port 443, qui est un port privilégié (inférieur à 1024). Sous Linux, seuls les processus exécutés en tant que root ou avec les bonnes capacités peuvent écouter sur ces ports.

Pour lui accorder la capacité CAP_NET_BIND_SERVICE, ce qui lui permet d'écouter sur les ports inférieurs à 1024 sans être root :

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

C'est une modification permanente tant que l'on ne met pas à jour ou ne remplace pas le binaire de Caddy.

Toutefois, si l'on met à jour Caddy, la permission sera probablement supprimée, et il faudra refaire la commande.

Pour vérifier si la permission est toujours active après une mise à jour:

getcap /usr/local/bin/caddy

Si la commande ne renvoie rien, cela signifie que la capacité a été supprimée et qu'il faut la réappliquer.

Utiliser caddy

https://ettayeb.fr/guide-dutilisation-dun-serveur-caddy-sous-linux/

caddy help
caddy start --config /etc/caddy/Caddyfile

SSL

https://caddy.community/t/ssl-configuration-in-caddy/15535

J'utilise mes propres certificats (mkcert) ou des certificats certifiés par un CA

Pour ajouter les certificats: tls cert key

Si le certificat est certifié par un CA, le certificat est alors un bundle fait par
cat server.crt bundle.pem > fullchain.pem
cat certificate.crt ca_bundle.crt > fullchain.pem

error log pour php-fpm

Editer (décommenter dans) le fichier www.conf (situé à /etc/php/8.3/fpm/pool.d/www.conf):

ensuite

et redémarrerr php-fpm.

php.ini (pour php-cli)

On peut voir l'emplacement de php.ini

Editer php.ini

log_errors = on
error_reporting = E_All
error_log = /path/filename   # OU BIEN   error_log = syslog
display_errors

Coment bloquer l'accès à certains répertoires et fichiers dans Caddy v2

@blocked {
    path *.txt *.md *.mdown /dir1/* /dir2/*
}
respond @blocked 403

Vous pouver choisir rewrite ou redir ou respond pour bloquer ces requêtes.

Comment redémarrerr php-fpm?

https://serverfault.com/questions/189940/how-do-you-restart-php-fpm Note: prepend sudo si pas root

Avec init.d

/etc/init.d/php-fpm restart    # typical
/etc/init.d/php5-fpm restart   # debian-style
/etc/init.d/php8.3-fpm restart # debian-style PHP 8

Avec service

service php-fpm restart    # typical
service php5-fpm restart   # debian-style
service php8.3-fpm restart # debian-style PHP 8

Avec restart

restart php8.3-fpm         # typical (ubuntu is debian-based) PHP 8
restart php5-fpm           # typical (ubuntu is debian-based)
restart php-fpm            # uncommon

Avec systemd

systemctl restart php-fpm.service    # typical
systemctl restart php5-fpm.service   # uncommon
systemctl restart php8.3-fpm.service # uncommon PHP 8

Ou avec l'équivalent pour votre système.

Caddyfile

Voir mes fichiers sur mes serveurs

caddy en tant que service

Répertoires relatifs à caddy

Sur ilu.be (serveur) :
sudo find / -type d -name "*caddy*"

/root/.local/share/caddy
/root/.config/caddy
/var/log/caddy
/etc/caddy

Le répertoire qui contient les certificats letsencrypt est :
/root/.local/share/caddy/certificates/

Sur PC101 :
sudo find / -type d -name "*caddy*"

/root/.config/caddy
/root/.local/share/caddy
/root/.local/share/caddy/acme/acme.zerossl.com-v2-dv90/users/caddy@zerossl.com
/usr/share/caddy
/etc/caddy
/home/jean/.config/caddy
/home/jean/.local/share/caddy
/var/log/caddy

Pour bien analyser la structure faire :
sudo find / | grep caddy | less et chercher caddy

reverse-proxy

Si deno, ou python, ou php, sert des pages par exemple sur le port 6969, on peut utiliser un reverse-proxy dans caddy pour associer ces pages à un domaine.

Le caddyFile:

<domain> {
    reverse_proxy localhost:6969
}

setup Caddy pour accès seulement au LAN local

site.whatever.com {
        @whitelist {
                remote_ip 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 127.0.0.1/8
        }
        handle @whitelist {
		        reverse_proxy 192.168.1.39
        }
        respond 403
}