The PHP-FPM container every PHP project runs in
The PHP-FPM container every PHP project runs in: Drupal, WordPress, Laravel, Symfony or anything else. One image, built by Vallic from wodby's PHP, published for PHP 8.2 to 8.5.
It carries PHP and its extensions, Composer, and the clients a shell needs (rsync, mariadb, psql). It carries no framework's tool: drush is the one in your project's vendor/bin, and a WordPress project fetches wp-cli into bin/ as a build step in its vallic.yaml — both are on PATH inside the container, and both are versioned with your code rather than with ours.
Inside the container the code is at /var/www/html/current (WEB_ROOT), read-only; the directory above it holds the releases kept for rollback. The user is vallic.
runtime.php in vallic.yaml picks it, for the site and for your build steps alike, so Composer resolves your dependencies against the PHP that will run them:
runtime:
php: '8.4'
memory_limit: 512M
Leave it out and you get the default, marked below. memory_limit is held to what your plan allows — see Configuration for the ladder.
The queue worker, your workers and your scheduled jobs run in this same image, with the same settings. See Service settings for what you can change.
| Version | Status |
|---|---|
8.5 |
Supported, and the default |
8.4 |
Supported |
8.3 |
Supported |
8.2 |
Supported |
Pin the version, not the build: name 8.5 and the platform matches it to the
current build, so a security rebuild reaches you without anybody editing a
repository.
In vallic.yaml — what each one does is on Service settings:
services:
- php:
version: '8.5'
environment:
PHP_MEMORY_LIMIT: …
PHP_MAX_EXECUTION_TIME: …
PHP_POST_MAX_SIZE: …
PHP_UPLOAD_MAX_FILESIZE: …
PHP_OPCACHE_MEMORY_CONSUMPTION: …
PHP_APCU_SHM_SIZE: …
PHP_FPM_PM_MAX_CHILDREN: …
PHP_DISPLAY_ERRORS: …
PHP_MAX_INPUT_VARS: …
Anything not on this list refuses the deploy, naming the variable — rather than being accepted and quietly ignored.