PHP 8.3 + MariaDB
PHP 8.3 with MariaDB, the general-purpose Stack for custom PHP applications.
PHP 8.3 brings stricter typing, readonly properties, enumerations and significant performance improvements compared to the 7.x series. MariaDB is a fork of MySQL compatible at the protocol and SQL levels.
Included services
In addition to your application, the Stack brings up MariaDB, an nginx that accepts traffic on port 80, an automatic backups service and the web file manager.
Project structure
.
βββ app
β βββ index.php
β βββ php-fpm.conf
βββ backup
β βββ backup-runner.sh
βββ nginx
β βββ default.conf
βββ .env.example
βββ app.Dockerfile
βββ compose.yaml
Getting started
Install the Stack and start it:
docker-deploy-stack --stack php/php8.3-mariadb
cd /root/stack/php/php8.3-mariadb
docker compose up -d
Then replace the example application with yours, from Git, via SFTP or from the web file manager, following como-despliego-una-aplicacion-en-un-stack.md. Your code goes in the app/ folder.
Each time you update the code, apply the changes:
docker compose up -d --build
Configuration
Editable values are in the Stackβs .env file:
| Variable | Default | Purpose |
|---|---|---|
APP_PORT |
80 |
Public port of the Stack. |
APP_ENV |
development |
Application environment. |
DB_NAME |
example |
Database name. |
DB_USER |
app |
Database user. |
BACKUP_ENABLED |
1 |
Automatic backups: 1 enabled, 0 disabled. |
BACKUP_INTERVAL_SECONDS |
86400 |
How many seconds between backups. |
BACKUP_RETENTION_DAYS |
7 |
How many days backups are retained. |
MARIADB_VERSION |
11.4 |
Corresponding image version. |
NGINX_VERSION |
stable-alpine |
Corresponding image version. |
PHP_VERSION |
8.3 |
Corresponding image version. |
After changing it, apply the changes with docker compose up -d.
Useful commands
docker compose ps # see the containers that are running
docker compose logs -f # view logs live
docker compose restart # restart the services
docker compose down # stop and remove the containers