====== Webtrees in einem docker container ======
====== How to Set Up Nginx, MariaDB, and PHP with Docker Compose ======
* [[https://linuxiac.com/how-to-set-up-lemp-stack-with-docker-compose/]]
==== docker-compose.yaml ====
version: '3.8'
# Services
services:
# PHP Service
php:
build:
dockerfile: php-dockerfile
volumes:
- './php-files:/var/www/html'
- './php.ini:/usr/local/etc/php/php.ini'
depends_on:
- mariadb
# Nginx Service
nginx:
image: nginx:latest
ports:
- 8087:80
links:
- 'php'
volumes:
- './php-files:/var/www/html'
- './nginx-conf:/etc/nginx/conf.d'
depends_on:
- php
# MariaDB Service
mariadb:
image: mariadb:10.9
environment:
MYSQL_ROOT_PASSWORD: uhpc49C5+#
volumes:
- mysqldata:/var/lib/mysql
# phpMyAdmin Service
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- 8082:80
environment:
PMA_HOST: mariadb
UPLOAD_LIMIT: 100M
depends_on:
- mariadb
# Volumes
volumes:
mysqldata:
==== php-dockerfile ====
FROM php:8.1-fpm
# Installing dependencies for the PHP modules
RUN apt-get update && \
apt-get install -y zip libzip-dev libpng-dev php-curl php-mbstring
# Installing additional PHP modules
RUN docker-php-ext-install mysqli pdo pdo_mysql gd zip mbstring curl exif intl
==== php-files/index.php ====
==== nginx-conf/nginx.conf ====
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
client_max_body_size 30m;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.php$ {
fastcgi_pass php:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
===== How to Create Nginx Virtual Host (Server Block) =====
* [[https://linuxiac.com/nginx-virtual-host/]]