Passer au contenu principal

Configuration Caddy avec PHP et MariaDB

Configuration Machine virtuelle Alpine Linux Edge

Prérequis : 

  • Alpine Linux Edge
  • Caddy 2
  • MariaDB
  • PHP 7.4

Configuration de la VM :

  • 2 Vcpu
  • 1 Go de ram
  • 16 Go de disque

Editer la liste des sources

Voir Source APK pour Alpine edge

Installez les prérequis
apk upgrade -a
apk add mariadb-client mariadb php7 php7-fpm php7-json php7-phar php7-zlib php7-simplexml php7-dom php7-fileinfo php7-xmlwriter php7-xml php7-pdo_mysql php7-session php7-ctype php7-mbstring php7-mysqlnd php7-tokenizer php7-curl php7-zip php7-mcrypt php7-openssl php7-pdo php7-tidy php7-gd
 
Création base de donnée pour bookstack
mysql -u root
CREATE DATABASE Application_DB;
GRANT ALL ON Application_DB.* TO 'ApplicationDB' IDENTIFIED BY 'Application_DB_MDP';
FLUSH PRIVILEGES;

Configuration PHP

Il est ou le fichier ?
Emplacement: /etc/php7/php-fpm.d/www.conf
Nom du fichier: www.conf

Modifier les élément suivant sinon Caddy affichera l'erreur suivante
[ERROR 502 /info.php] dial unix /var/run/php7.4-fpm.sock: connect: permission denied

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = caddy
listen.group = caddy

Activer le fichier de démarrage et lancer le service

# Via OpenRC
rc-update add php-fpm7 default
rc-service php-fpm7 start
Fichier Caddyfile

Bon à savoir !
Emplacement: /etc/caddy/
Nom du fichier: Caddyfile

{
        # Activation protocole http3
        experimental_http3
}

# Nom de domaine a servir en HTTPS
Nom.De.Domaine.fr

# Envoie les notifications du fonctionnement du certificat Let's Encrypt à l'administrateur système
tls Sysadmin@mail.com

# Bloc log
# Garde les logs pendant 1 an conformément à la loi française
log {
        output file /var/log/caddy/access.json {
                roll_size 1gib
                roll_keep 5
                roll_keep_for 8760h
        }
}


# Definition du chemin racine Web
root * /var/www/Application/public
# Compression
encode zstd gzip
# Backend PHP 7.4
php_fastcgi unix//run/php/php7.4-fpm.sock
# Fichier web à servir
file_server

Appliquez les bon droits aux fichiers web pour caddy

chown -R caddy:caddy /var/www/application

 

Gestion service et log

Service Caddy

Lancer, redémarrer et arreter le service

rc-service caddy start
rc-service caddy stop
rc-service caddy reload

Voir les logs

rc-service caddy status
journalctl -u caddy