Centro de Ayuda

PHP 8.3 + MariaDB

PHP 8.3 con MariaDB, el Stack de propósito general para aplicaciones PHP a medida.

PHP 8.3 incorpora tipado más estricto, propiedades de solo lectura, enumeraciones y mejoras de rendimiento importantes frente a la serie 7. MariaDB es un fork de MySQL compatible a nivel de protocolo y de SQL.

Servicios que incluye

Además de tu aplicación, el Stack levanta MariaDB, un nginx que recibe el tráfico del puerto 80, un servicio de backups automáticos y el administrador de archivos web.

Estructura del proyecto

text
.
├── app
│   ├── index.php
│   └── php-fpm.conf
├── backup
│   └── backup-runner.sh
├── nginx
│   └── default.conf
├── .env.example
├── app.Dockerfile
└── compose.yaml

Puesta en marcha

Instalá el Stack y levantalo:

bash
docker-deploy-stack --stack php/php8.3-mariadb
cd /root/stack/php/php8.3-mariadb
docker compose up -d

Después reemplazá la aplicación de ejemplo por la tuya, desde Git, por SFTP o desde el administrador de archivos web, siguiendo como-despliego-una-aplicacion-en-un-stack.md. Tu código va en la carpeta app/.

Cada vez que actualices el código, aplicá los cambios:

bash
docker compose up -d --build

Configuración

Los valores editables están en el archivo .env del Stack:

Variable Por defecto Para qué sirve
APP_PORT 80 Puerto público del Stack.
APP_ENV development Entorno de la aplicación.
DB_NAME example Nombre de la base de datos.
DB_USER app Usuario de la base de datos.
BACKUP_ENABLED 1 Backups automáticos: 1 activados, 0 desactivados.
BACKUP_INTERVAL_SECONDS 86400 Cada cuántos segundos se hace un backup.
BACKUP_RETENTION_DAYS 7 Cuántos días se conservan los backups.
MARIADB_VERSION 11.4 Versión de la imagen correspondiente.
NGINX_VERSION stable-alpine Versión de la imagen correspondiente.
PHP_VERSION 8.3 Versión de la imagen correspondiente.

Después de cambiarlo, aplicá los cambios con docker compose up -d.

Comandos útiles

bash
docker compose ps          # ver los contenedores que están corriendo
docker compose logs -f     # ver los logs en vivo
docker compose restart     # reiniciar los servicios
docker compose down        # detener y eliminar los contenedores