PHP Extensions
/jabali-admin/php-extensions. Server-wide PHP extension manager (M9.6, ADR-0031). Installs and enables PHP extensions across every managed PHP version.
Scope
Server-wide, not per-user. An extension enabled here is available to every domain on every PHP version it ships for. Per-user PHP runtime tuning (memory_limit, upload_max_filesize, etc.) lives in PHP Settings; this page is the install plane.
What it lists
For every PHP version installed on the host (default 8.4; others added at install time via JABALI_PHP_VERSIONS), the table shows:
- Extension name (
imagick,redis,gnupg,xdebug, …). - Source — distro package (
php-<ext>from Sury) or PECL build. - Installed version.
- Per-PHP-version state — checked = enabled, unchecked = installable, dash = not available for that PHP version.
Actions
- Install — fetches the package (or builds from PECL when no distro package exists) and writes the
.inito enable it. - Uninstall — removes the package and
.inientries. - Apply changes — schedules a reconcile that:
- Restarts the affected PHP-FPM pools.
- Reloads the panel runtime so phpinfo() reflects the change.
Behind the scenes
- Distro-shipped extensions are pulled from the Sury repository (
packages.sury.org/php). - PECL extensions are built into a per-version sandbox under
/var/lib/jabali/phpext/<version>/and enabled via/etc/php/<version>/mods-available/<ext>.ini+phpenmod. - FPM pool restart is throttled to avoid restart storms when multiple extensions are toggled at once.
Common operations
| Goal | Action |
|---|---|
Install imagick for all PHP versions |
Tick every box in the imagick row → Apply changes. |
Roll out redis for PHP 8.4 only |
Tick the redis × 8.4 box → Apply changes. |
Try xdebug on a staging PHP version |
Install only the PHP version’s box; remember to uninstall before going live. |
Caveats
- Some PECL extensions require system libraries (
libmagickwand-dev,libcurl4-openssl-dev). The installer pulls these in when needed; if the build fails, the error message names the missing system package. - Enabling Xdebug system-wide will slow every site running on that PHP version. Use the per-PHP-version toggle to scope it.
CLI
jabali admin php-ext list
jabali admin php-ext install <ext> --version <php-version>
jabali admin php-ext apply
See internal/phpext/ in the panel-api repo for the registry and build logic.