Vidulividuli

PHP

Comprehensive information about PHP app configuration.

Common Settings

The section outlines common settings and behaviours for PHP projects.

PHP Version

Currently, PHP 8.2 is used for all PHP frameworks. The base image is php:8.2-fpm.

Build Process

PHP apps on Viduli use a single container with PHP-FPM and Nginx running together via Supervisor.

Laravel

  • Base distribution: Debian
  • PHP version: 8.2
  • Default image: php:8.2-fpm
  • Included packages: librabbitmq-dev libpq-dev libpng-dev libonig-dev libxml2-dev zip unzip ca-certificates procps git curl wget nano nginx supervisor
  • PHP extensions: mbstring gd pcntl opcache pdo pdo_mysql redis

Build dependencies

Dependencies are installed using Composer with the following command

composer install \
  --no-interaction \
  --prefer-dist \
  --optimize-autoloader \
  --no-dev

Environment

The following environment variables are set:

  • DB_DATABASE=/tmp/test-db.sqlite - Temporary database path (for testing convenience)

Additional secrets cannot be passed to the build at the moment.

Runtime environment variables can be set by adding secrets.

File Permissions

The storage and bootstrap/cache directories are made writable for Laravel's file operations by mounting a temporary drive. It uses the same drive as /tmp so space is limited to 1GiB.