31 Commits

Author SHA1 Message Date
steve-caillault b570a0a664 Mise à jour du fichier README. 2026-07-09 20:01:56 +02:00
steve-caillault 06c4b5a052 Suppression d'anciennes variables d'environnement. 2026-07-09 20:01:29 +02:00
steve-caillault 676144a793 Mise à jour des images Docker pour le serveur PHP. 2026-06-27 12:03:38 +02:00
steve-caillault b9a956a288 Remplacement de Mailhog par Mailpit. 2026-06-10 20:29:21 +02:00
steve-caillault 0f81951a59 Mise à jour de l'image du serveur à utiliser pour optimiser le temps de construction de l'image Docker. 2026-06-09 06:35:00 +02:00
steve-caillault 6ac2bd51eb Mise à jour des fichiers Docker Compose pour Memcached et Redis (ports et networks). 2026-06-08 19:41:44 +02:00
steve-caillault 85bc2ced1b Installation de Redis. 2026-05-28 08:13:43 +02:00
steve-caillault 559e71abb7 Installation de Memcached. 2026-05-28 07:50:58 +02:00
steve-caillault eabfbb07e7 Correctif dans le fichier .env.example pour l'image PHP. 2026-04-28 23:09:38 +02:00
steve-caillault b78801ba4e Mise à jour de .gitignore pour PHPStorm. 2026-03-23 22:17:07 +01:00
steve-caillault d4666dc12d Renomme les fichiers Dockerfile avec une extension. 2026-03-23 22:14:55 +01:00
steve-caillault 286ab9fa28 Suppresion du fichier server-php-test.php qui n'est plus utilisé. 2026-03-13 08:36:05 +01:00
steve-caillault 0f5fc818c6 Installation de Supercronic depuis un Dockerfile spécifique. 2026-03-13 08:35:08 +01:00
steve-caillault 519f5ee4cb Ajout de la configuration de Supercronic pour la configuration des tâches planifiées. 2026-03-12 22:04:20 +01:00
steve-caillault f09491f786 Utilisation de variables d'environnements pour les chemins racines de l'application dans les volumes. 2026-03-11 17:52:09 +01:00
steve-caillault 1f8a3b1ccb Utilisation de raccourcis pour les fichiers docker-compose dans le fichier .env.example. 2026-03-11 17:48:27 +01:00
steve-caillault e13bf5c8e4 Mise à jour de la configuration pour Apache. 2026-03-09 19:40:21 +01:00
steve-caillault fd486390f7 Mise à jour du fichier .env.example pour Vite en local. 2026-03-01 16:39:07 +01:00
steve-caillault cebf1ce759 Déplacement des fichiers docker-compose dans un sous-répertoire. 2026-03-01 16:28:32 +01:00
steve-caillault a7f9717b02 Correctif dans le Dockerfile de FrankenPHP pour la configuration de Composer, NPM et de l'utilisateur www-data. 2026-03-01 10:39:26 +01:00
steve-caillault d19d3eed63 Fichier docker-compose pour gérer le domaine d'upload des fichiers. 2026-03-01 10:37:20 +01:00
steve-caillault 8e10fdf3e2 Mise à jour de la configuration de Caddyfile pour rendre les fichiers d'assets accessibles. 2026-03-01 09:32:27 +01:00
steve-caillault 9c813a3aae Correctif pour la configuration d'OPcache en développement. 2026-03-01 09:29:59 +01:00
steve-caillault 0e61f5cf67 Utilisation d'une variable d'environnement pour le répertoire root de FrankenPHP. 2026-02-28 10:57:51 +01:00
steve-caillault a9f904060e Configuration d'OPcache avec FrankenPHP. 2026-02-28 10:20:39 +01:00
steve-caillault 502fa49d24 Mise à jour du healthcheck de FrankenPHP pour ne pas utiliser index.php mais un fichier spécifique. 2026-02-26 20:09:29 +01:00
steve-caillault 77122f5f6c Installation des dépendances pour MariaDB et GD. 2026-02-25 19:28:31 +01:00
steve-caillault 2854d3bb19 Réduction de l'intervalle pour la vérification du démarrage de FrankenPHP. 2026-02-25 18:09:00 +01:00
steve-caillault b0ac4a0a2c Ajout d'un healthcheck pour le conteneur FrankenPHP pour corriger le temps de disponibilité au démarrage. 2026-02-24 19:40:36 +01:00
steve-caillault e999b5c7ce Fichier Dockerfile pour FrankenPHP (Node, NPM et Composer). 2026-02-23 20:17:52 +01:00
steve-caillault 4e158e5485 Installation de mailhog pour pouvoir tester l'envoi de mail en local. 2026-02-23 18:58:36 +01:00
23 changed files with 375 additions and 44 deletions
+54 -4
View File
@@ -1,10 +1,29 @@
# À définir pour éviter les problèmes sur les multi-projets Docker
COMPOSE_PROJECT_NAME=""
COMPOSE_FILE=docker-compose.yml
# Raccourcis pour les fichier docker-compose
COMPOSE_FILE_BASE="docker/docker-compose.yml"
COMPOSE_FILE_APACHE="docker/docker-compose.apache-php.yml"
COMPOSE_FILE_FRANKENPHP="docker/docker-compose.frankenphp.yml"
COMPOSE_FILE_MEMCACHED="docker/docker-compose.memcached.yml"
COMPOSE_FILE_REDIS="docker/docker-compose.redis.yml"
COMPOSE_FILE_CRON="docker/docker-compose.cron.yml"
COMPOSE_FILE_UPLOAD="docker/docker-compose.upload.yml"
COMPOSE_FILE_MAILPIT="docker/docker-compose.mailpit.yml"
COMPOSE_FILE_DEV="docker/docker-compose.dev.yml"
COMPOSE_FILE_LETS_ENCRYPT="docker/docker-compose.lets-encrypt.yml"
# docker-compose de base
COMPOSE_FILE="${COMPOSE_FILE_BASE}"
# docker-compose pour le serveur PHP
# COMPOSE_FILE_SERVER_PHP="${COMPOSE_FILE_FRANKENPHP}"
COMPOSE_FILE_SERVER_PHP="${COMPOSE_FILE_APACHE}"
# Exemple complet en local
# COMPOSE_FILE="${COMPOSE_FILE_BASE}:${COMPOSE_FILE_SERVER_PHP}:${COMPOSE_FILE_MEMCACHED}:{COMPOSE_FILE_REDIS}:${COMPOSE_FILE_CRON}:${COMPOSE_FILE_UPLOAD}:${COMPOSE_FILE_MAILPIT}:${COMPOSE_FILE_DEV}"
# Pour utiliser Let's Encrypt :
# COMPOSE_FILE=docker-compose.yml:docker-compose.lets-encrypt.yml
# COMPOSE_FILE="${COMPOSE_FILE_BASE}:${COMPOSE_FILE_LETS_ENCRYPT}"
# Préfixe pour les noms des conteneurs et des labels dans les fichiers docker-compose
CONTAINER_PREFIX=""
@@ -16,13 +35,44 @@ PROJECT_URL=""
DATABASE_IMAGE="mariadb:12"
DATABASE_ROOT_PASSWORD=""
# Chemin de l'application pour les volumes
# APP_HOST_PATH est relatif à ${PWD}
APP_HOST_PATH="www"
# Pour FrankenPHP
# APP_CONTAINER_PATH="/app"
# Pour Apache
APP_CONTAINER_PATH="/var/www/html"
# Apache et PHP
APACHE_PHP_VERSION="php:8.5-apache"
APACHE_PHP_IMAGE="gitea.steve-caillault.dev/steve-caillault/docker-php-image:8.5-apache-2.4"
APACHE_ADMIN_EMAIL=""
APACHE_ROOT_PATH="/var/www/html"
# FrankenPHP
FRANKENPHP_VERSION="dunglas/frankenphp:1.11.2-php8.5"
FRANKENPHP_IMAGE="gitea.steve-caillault.dev/steve-caillault/docker-php-image:8.5-frankenphp-1.11.2"
FRANKENPHP_ROOT_PATH="/app/"
# Image du serveur PHP
SERVER_PHP_IMAGE="${APACHE_PHP_IMAGE}"
#SERVER_PHP_IMAGE="${FRANKENPHP_IMAGE}"
# Image pour Memcached
MEMCACHED_IMAGE="memcached:latest"
MEMCACHED_PORT="11211:11211"
# Image pour Redis
REDIS_IMAGE="redis:latest"
REDIS_PORT="6379:6379"
# Nom du fichier de configuration OPcache à utiliser
OPCACHE_CONFIG_FILE="opcache.dev.ini"
# PHPMyAdmin
PHPMYADMIN_IMAGE="phpmyadmin:5.2-apache"
PHPMYADMIN_URL=""
# Mailpit (interface mail en développement)
MAILPIT_URL=""
# Configuration en local
VITE_PORT="8888"
+3
View File
@@ -4,3 +4,6 @@ host/database/data/*
!host/database/data/.gitkeep
host/database/backups/*
!host/database/backups/.gitkeep
upload/*
!upload/.gitkeep
.idea
+123 -7
View File
@@ -1,10 +1,126 @@
Nécessite d'avoir installé Traefik globalement : https://github.com/steve-caillault/docker-traefik.
# Docker PHP Stack
Attention avant de démarrer Docker, vérifier que l'utilisateur 1000 et que le groupe 1000 existent bien : getent passwd 1000
Puis exécuter la commande : sudo chown -R 1000:1000 ./host
Vérifier ensuite après quelques secondes les containeurs avec docker ps.
Si nécessaire, vérifier les logs avec : docker logs <container>
Ce dépôt permet d'initier un projet PHP avec une stack Docker qui inclut :
- un serveur Apache ou FrankenPHP
- MariaDB
- PHPMyAdmin
- Supercronic (pour les tâches planifiées)
- Mailpit (pour l'envoi de mails en développement)
[Prérequis](#prerequisites) <br>
[Initialiser un projet](#initialize) <br>
[Configuration d'Apache](#apache) <br>
[Configuration de FrankenPHP](#frankenphp) <br>
[Autres variables d'environnement](#other-env-variables) <br>
[Fichiers docker-compose.yml](#docker-compose-files)
## Prérequis <a id="prerequisites"></a>
- Docker
- Docker Compose
Vous aurez besoin de [Traefik](https://traefik.io/traefik) installé globalement.
Pour cela, vous pouvez consulter le dépôt [Docker Traefik](https://gitea.steve-caillault.dev/steve-caillault/docker-traefik).
Vérifier que l'utilisateur 1000 et que le groupe 1000 existent bien :
````bash
getent passwd 1000
````
Puis exécuter la commande :
````bash
sudo chown -R 1000:1000 ./host
````
## Initialiser un projet <a id="initialize"></a>
Créer le fichier .env en utilisant la commande ````cp .env.example .env````.
Vous aurez besoin de définir plusieurs variables d'environnement :
| Variable | Description |
| ------------------------ | ------------------------------------------------------------------------- |
| `COMPOSE_PROJECT_NAME` | Nom unique du projet sans espace ou tiret (-). |
| `CONTAINER_PREFIX` | Préfixe utilisé pour le nom des conteneurs de la stack. |
| `PROJECT_URL` | Utilisée pour déterminer l'URL d'accès au projet en HTTP. |
| `DATABASE_ROOT_PASSWORD` | Mot de passe de l'utilisateur `root` pour la base de données MariaDB. |
| `PHPMYADMIN_URL` | URL pour l'accès à PHPMyAdmin. |
| `MAILPIT_URL` | URL pour la consultation des mails en développement. |
| `APACHE_ADMIN_EMAIL` | Adresse email utilisée dans la configuration d'Apache pour `ServerAdmin`. |
Initialement, c'est un serveur Apache qui sera utilisé. Vous pouvez vous reporter à la section <a href="#frankenphp" title="Configuration de FrankenPHP">FrankenPHP</a>,
si vous souhaitez configurer ce type de serveur.
Après avoir édité le fichier `.env`, vous pouvez exécuter la commande suivante pour démarrer les services :
```̀ bash
docker compose up -d
````
Vous pouvez ensuite vérifier l'état des conteneurs avec la commande `docker compose ps`.
Si nécessaire, vérifier les logs avec : `docker compose logs { service name }`.
Pour accéder à MariaDB :
docker compose exec database exec
mariadb -u<user> -p<password>
````bash
docker compose exec database mariadb -u{ username } -p{ user password }
````
## Configuration d'Apache <a id="apache"></a>
Le projet est initialement configuré pour fonctionner avec un serveur Apache. Si vous souhaitez l'utiliser, il vous
suffit de définir la variable d'environnement ````APACHE_ADMIN_EMAIL```` dans le fichier .env.
| Variable | Description |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `COMPOSE_FILE_SERVER_PHP` | Utiliser la valeur ````${COMPOSE_FILE_APACHE}```` pour utiliser le fichier Docker Compose d'Apache. |
| `APP_CONTAINER_PATH` | Doit être défini sur `/var/www/html`. |
| `APACHE_PHP_IMAGE` | Image Docker d'Apache PHP à utiliser. |
| `APACHE_ADMIN_EMAIL` | Adresse email de l'administrateur. |
Vous pouvez éditer la configuration du Virtual Host depuis le fichier `host/apache/conf/vhost.conf`.
## Configuration de FrankenPHP <a id="frankenphp"></a>
FrankenPHP utilise un chemin d'accès diffèrent d'Apache.
Alors qu'avec un serveur Apache, on utilise régulièrement le chemin `/var/www`, FrankenPHP utilise quant à lui `/app/public/`.
Il faut donc redéfinir plusieurs variables d'environnement :
| Variable | Description |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `COMPOSE_FILE_SERVER_PHP` | Utiliser la valeur ````${COMPOSE_FILE_FRANKENPHP}```` pour utiliser le fichier Docker Compose de FrankenPHP. |
| `APP_CONTAINER_PATH` | Doit être défini sur `/app`. |
| `FRANKENPHP_ROOT_PATH` | Peut être défini sur `/app/` (ou `/app/public` pour un projet Laravel). Il s'agit du chemin racine de votre fichier index.php. |
| `FRANKENPHP_IMAGE` | Image Docker de FrankenPHP à utiliser. |
Le fichier de configuration ````Caddyfile```` se trouve dans le répertoire ````host/frankenphp/conf````.
## Autres variables d'environnement <a id="other-env-variables"></a>
| Variable | Description |
| --------------------------- | --------------------------------------------------------------------------------------------------------- |
| `DATABASE_IMAGE` | Image Docker de la base de données MariaDB. |
| `MEMCACHED_IMAGE` | Image Docker de Memcached à utiliser. |
| `REDIS_IMAGE` | Image Docker de Redis. |
| `OPCACHE_CONFIG_FILE` | Nom du fichier de configuration d'OPcache. Le fichier doit se trouver dans le répertoire `host/php/conf`. |
| `VITE_PORT` | Port à utiliser pour Vite en développement (voir le fichier `docker/docker-compose.dev.yml`). |
## Fichiers docker-compose.yml <a id="docker-compose-files"></a>
Nous utilisons la variable d'environnement `COMPOSE_FILE` pour déterminer les fichiers docker-compose à utiliser.
Les fichiers sont stockés dans le répertoire `docker`.
Voici une description des diffèrents fichiers :
| Fichier | Description |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| docker-compose.yml | Configuration de base définissant le serveur PHP, la base de données et PHPMyAdmin. |
| docker-compose.apache-php.yml | Configuration spécifique pour un serveur Apache. |
| docker-compose.frankenphp.yml | Configuration spécifique pour un serveur FrankenPHP. |
| docker-compose.cron.yml | Configuration d'un système de crontab utilisant Supercronic. Les tâches planifiées peuvent être définies dans le fichier `host/crontab`. |
| docker-compose.dev.yml | Configuration spécifique en environnement de développement. |
| docker-compose.mailpit.yml | Configuration de l'application de consultation des mails en développement. |
| docker-compose.memcached.yml | Configuration pour Memcached. |
| docker-compose.redis.yml | Configuration pour Redis. |
| docker-compose.upload.yml | Définit le répertoire `upload` comme répertoire de stockage. |
| docker-compose.lets-encrypt.yml | Configuration de Let's Encrypt. ⚠️ Cela n'a pas été testé sur un serveur. |
-13
View File
@@ -1,13 +0,0 @@
services:
server-php:
image: ${APACHE_PHP_VERSION}
environment:
- APACHE_ADMIN_EMAIL=${APACHE_ADMIN_EMAIL}
volumes:
- ./www:/var/www/html
- ./host/apache/logs:/var/log/apache2
- ./host/apache/conf/vhost.conf:/etc/apache2/sites-available/000-default.conf
- ./host/apache/conf/apache2.conf:/etc/apache2/conf-enabled/docker.conf
-8
View File
@@ -1,8 +0,0 @@
services:
server-php:
image: ${FRANKENPHP_VERSION}
volumes:
- ./www:/app
- ./host/frankenphp/conf/Caddyfile:/etc/frankenphp/Caddyfile
+19
View File
@@ -0,0 +1,19 @@
ARG IMAGE=unknown
FROM ${IMAGE}
# Installation des dépendances
RUN apt-get update && apt-get install -y curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Configuration de Supercronic pour la gestion des tâches planifiées
ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.2.44/supercronic-linux-amd64 \
SUPERCRONIC_SHA1SUM=6eb0a8e1e6673675dc67668c1a9b6409f79c37bc \
SUPERCRONIC=supercronic-linux-amd64
RUN curl -fsSLO "$SUPERCRONIC_URL" \
&& echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
&& chmod +x "$SUPERCRONIC" \
&& mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \
&& ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
+17
View File
@@ -0,0 +1,17 @@
services:
server-php:
environment:
APACHE_ADMIN_EMAIL: ${APACHE_ADMIN_EMAIL}
APACHE_ROOT_PATH: ${APACHE_ROOT_PATH}
# Configuration en local
VITE_PORT: ${VITE_PORT}
volumes:
- ${PWD}/${APP_HOST_PATH}:${APP_CONTAINER_PATH}
- ${PWD}/host/apache/logs:/var/log/apache2
- ${PWD}/host/apache/conf/vhost.conf:/etc/apache2/sites-available/000-default.conf
- ${PWD}/host/apache/conf/apache2.conf:/etc/apache2/conf-enabled/docker.conf
- ${PWD}/host/php/conf/${OPCACHE_CONFIG_FILE:-opcache.default.ini}:/usr/local/etc/php/conf.d/opcache.ini
- ${PWD}/upload:/app/public/upload
+26
View File
@@ -0,0 +1,26 @@
services:
cron:
restart: unless-stopped
container_name: ${CONTAINER_PREFIX}_cron
build:
context: ${PWD}
args:
IMAGE: ${SERVER_PHP_IMAGE}
dockerfile: ${PWD}/docker/cron.dockerfile
command: supercronic /etc/crontab
environment:
APP_PATH: ${APP_CONTAINER_PATH}
volumes:
- ${PWD}/${APP_HOST_PATH}:${APP_CONTAINER_PATH}
- ${PWD}/host/crontab:/etc/crontab
depends_on:
- server-php
healthcheck:
disable: true
+5
View File
@@ -0,0 +1,5 @@
services:
server-php:
# Pour Vite notamment
ports:
- "${VITE_PORT}:${VITE_PORT}"
+17
View File
@@ -0,0 +1,17 @@
services:
server-php:
environment:
FRANKENPHP_ROOT_PATH: ${FRANKENPHP_ROOT_PATH}
# Configuration en local
VITE_PORT: ${VITE_PORT}
volumes:
- ${PWD}/${APP_HOST_PATH}:${APP_CONTAINER_PATH}
- ${PWD}/host/frankenphp/conf/Caddyfile:/etc/frankenphp/Caddyfile
- ${PWD}/host/php/conf/${OPCACHE_CONFIG_FILE:-opcache.default.ini}:/usr/local/etc/php/conf.d/opcache.ini
- ${PWD}/upload:/app/public/upload
healthcheck:
disable: true
@@ -6,12 +6,12 @@ services:
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
volumes:
- ./certs/letsencrypt:/letsencrypt
- ${PWD}/certs/letsencrypt:/letsencrypt
server-php:
labels:
- "traefik.http.routers.${CONTAINER_PREFIX}_server_php.tls.certresolver=letsencrypt"
- traefik.http.routers.${CONTAINER_PREFIX}_server_php.tls.certresolver=letsencrypt
phpmyadmin:
labels:
- "traefik.http.routers.${CONTAINER_PREFIX}_pma.tls.certresolver=letsencrypt"
- traefik.http.routers.${CONTAINER_PREFIX}_pma.tls.certresolver=letsencrypt
+15
View File
@@ -0,0 +1,15 @@
services:
mailpit:
restart: unless-stopped
container_name: ${CONTAINER_PREFIX}_mailpit
image: axllent/mailpit:latest
logging:
driver: "none"
labels:
- traefik.enable=true
- traefik.http.routers.${CONTAINER_PREFIX}_mailpit.rule=Host(`${MAILPIT_URL}`)
- traefik.http.routers.${CONTAINER_PREFIX}_mailpit.entrypoints=websecure
- traefik.http.services.${CONTAINER_PREFIX}_mailpit.loadbalancer.server.port=8025
networks:
- frontend
+10
View File
@@ -0,0 +1,10 @@
services:
memcached:
restart: unless-stopped
container_name: ${CONTAINER_PREFIX}_memcached
image: ${MEMCACHED_IMAGE}
ports:
- ${MEMCACHED_PORT}
networks:
- backend
+10
View File
@@ -0,0 +1,10 @@
services:
redis:
restart: unless-stopped
container_name: ${CONTAINER_PREFIX}_redis
image: ${REDIS_IMAGE}
ports:
- ${REDIS_PORT}
networks:
- backend
+17
View File
@@ -0,0 +1,17 @@
services:
uploads:
image: nginx:alpine
container_name: ${CONTAINER_PREFIX}_uploads
restart: unless-stopped
volumes:
- ${PWD}/upload:/usr/share/nginx/html:ro
labels:
- traefik.enable=true
- traefik.docker.network=frontend
- traefik.http.routers.${CONTAINER_PREFIX}_uploads.rule=Host(`upload.${PROJECT_URL}`)
- traefik.http.routers.${CONTAINER_PREFIX}_uploads.entrypoints=websecure
- traefik.http.routers.${CONTAINER_PREFIX}_uploads.tls=true
- traefik.http.services.${CONTAINER_PREFIX}_uploads.loadbalancer.server.port=80
networks:
- frontend
@@ -13,11 +13,11 @@ services:
image: ${DATABASE_IMAGE}
volumes:
# Données
- ./host/database/data:/var/lib/mysql
- ./host/database/sql:/sql
- ./host/database/backups:/backups
- ${PWD}/host/database/data:/var/lib/mysql
- ${PWD}/host/database/sql:/sql
- ${PWD}/host/database/backups:/backups
# Configuration
- ./host/database/conf/my.cnf:/etc/mysql/mariadb.conf.d/my.cnf
- ${PWD}/host/database/conf/my.cnf:/etc/mysql/mariadb.conf.d/my.cnf
environment:
MARIADB_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD}
networks:
@@ -27,6 +27,14 @@ services:
server-php:
restart: unless-stopped
container_name: ${CONTAINER_PREFIX}_server_php
hostname: ${PROJECT_URL}
build:
context: ${PWD}
args:
SERVER_PHP_IMAGE: ${SERVER_PHP_IMAGE}
dockerfile: ${PWD}/docker/server-php.dockerfile
labels:
- traefik.enable=true
- traefik.docker.network=frontend
@@ -40,6 +48,8 @@ services:
- frontend
- backend
user: "${UID:-1000}:${GID:-1000}"
# Configuration de PHPMyAdmin
phpmyadmin:
restart: unless-stopped
+4
View File
@@ -0,0 +1,4 @@
ARG SERVER_PHP_IMAGE=unknown
# Image du serveur PHP à utiliser (Apache, FrankenPHP...)
FROM ${SERVER_PHP_IMAGE}
+3 -1
View File
@@ -1,7 +1,9 @@
<VirtualHost *:80>
ServerAdmin ${APACHE_ADMIN_EMAIL}
<Directory /var/www/html>
DocumentRoot ${APACHE_ROOT_PATH}
<Directory ${APACHE_ROOT_PATH}>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
+4
View File
@@ -0,0 +1,4 @@
# Utilisation de Supercronic pour la gestion des tâches planifiées
# https://github.com/aptible/supercronic
# * * * * * php $APP_PATH/artisan my-test
+6 -2
View File
@@ -3,6 +3,10 @@
}
:80 {
root * /app/
php_server
root * {$FRANKENPHP_ROOT_PATH}
file_server
php_server {
resolve_root_symlink false
try_files {path} index.php
}
}
+11
View File
@@ -0,0 +1,11 @@
# Configuration de OPcache pour un environnement de production
# JIT est activé et OPcache vérifie les modifications toutes les 60 secondes
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.jit=1255
opcache.jit_buffer_size=128M
+12
View File
@@ -0,0 +1,12 @@
# Configuration de OPcache pour un environnement de développement
# JIT est désactivé et OPcache vérifie les modifications à chaque requête
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.jit=0
opcache.jit_buffer_size=0
View File