Table des matières

Nginx PHP-FPM

Objectif

Le principe est de disposer d'un docker clef en main pour la construction d'un serveur web http(s) / php.

Le principe détaillé d'une installation manuelle sur le Blog de Guillaume (source en pdf ).

Installation du serveur web

Le repository docker : richarvey/nginx-php-fpm

Installation simple

Modèle d'installation pour une base Nginx + PHP :

docker run -d --restart=always --name="Nginx_WWW" \
-p 80:80 \
-e "PUID=`id -u $USER`" -e "PGID=`id -g $USER`"
-v /mnt/Raid/Documents_de_Florian/Documents_NAS/Dockers/Docker_Data/Nginx_WWW/:/var/www/html \
richarvey/nginx-php-fpm

Ou en compose :

docker-compose.yml
version: "3"

services:
  Nginx_Dokuwiki:
    container_name: Nginx_Interne
    image: richarvey/nginx-php-fpm
    ports:
      - "80:80/tcp"
    restart: always
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - /mnt/Raid/Documents_de_Florian/Documents_NAS/Dockers/Docker_Data/Nginx_Interne/:/var/www/html

Installation avec gestion de la conf Nginx

L'objectif est d'avoir la main sur le fichier de configuration Nginx suivant : /etc/nginx/sites-available/default.conf Il faut passer par les fonctionnalités git proposées par ce docker.

Suivre la doc : https://gitlab.com/ric_harvey/nginx-php-fpm

Pour ma part je fais le choix de ne stocker que la conf dans Git et pas le “code html”. Du coup je propose un autre répertoire à Nginx monté comme volume avec l'option -v de docker. Peut être que je ferai le choix plus tard de mettre tout sous git pour finalement assurer de la sauvegarde/versionning .. In fine cela donne pour moi un truc du genre :

docker run -d --restart=always --name="Nginx_Dokuwiki" 
-p 8081:80 
-v /mnt/Raid/Documents_de_Florian/Documents_NAS/Dockers/Docker_Data/Nginx_Dokuwiki/:/var/www/public 
-e "PUID=`id -u $USER`" -e "PGID=`id -g $USER`" 
-e 'GIT_EMAIL=florian.tales@laposte.net' 
-e 'GIT_NAME=floriantales' 
-e 'GIT_USERNAME=floriantales' 
-e 'GIT_REPO=github.com/floriantales/Nginx_Dokuwiki' 
-e 'GIT_PERSONAL_TOKEN=************************************' 
richarvey/nginx-php-fpm:latest

Ne pas oublier d'ajuster la conf Nginx :

[...]
    root /var/www/public;
[...]

Pour mettre à jour la conf Nginx : commiter sur Github et faire un pull sur son docker via :

docker exec -t -i <CONTAINER_NAME> /usr/bin/pull & docker restart <CONTAINER_NAME>

Exemples de réalisation

Base NGinx et PHP FPM utilisée pour le Dokuwiki ou Cheky et mon cv en ligne.