PHP extensions in applications

4 min read Updated 1 week ago

PHP extensions in applications

Overview

PHP extensions are additional PHP modules that extend the functionality of your application. The platform provides a simple interface to enable and disable extensions, automatically installing them during the deployment process.

Available extensions

The platform supports 27 PHP extensions that can be enabled or disabled as needed:

  • bcmath - Arbitrary precision mathematics

  • bz2 - Bzip2 compression

  • calendar - Calendar conversion functions

  • exif - EXIF image metadata

  • excimer - CPU usage profiling

  • gd - Image processing

  • gettext - Internationalization support

  • gmp - GNU multiple precision arithmetic

  • imap - IMAP email functions

  • imagick - ImageMagick image processing

  • intl - Internationalization functions

  • ldap - LDAP directory access

  • mbstring - Multibyte string handling

  • memcached - Memcached caching

  • mongodb - MongoDB database support

  • opcache - Bytecode caching

  • pcntl - Process control

  • pgsql - PostgreSQL database support

  • redis - Redis caching

  • soap - SOAP web services

  • sockets - Socket communication

  • sqlite3 - SQLite database support

  • tidy - HTML cleanup

  • xml - XML processing

  • xmlrpc - XML-RPC support

  • xsl - XSL transformations

  • zip - ZIP archive handling

Default extensions

When you create a new application, these extensions are automatically enabled:

  • zip - For handling ZIP archives

  • intl - For internationalization support

  • mbstring - For multibyte string operations

  • xml - For XML processing

Enabling and disabling extensions

Through the settings interface

  1. Navigate to your application's settings tab

  2. Scroll to the "PHP extensions" section

  3. Use the checkboxes to select or deselect extensions

  4. Click "Save changes" to apply your configuration

  5. Deploy your application for the changes to take effect

Bulk selection options

  • Select all - Enable all available extensions

  • Deselect all - Disable all extensions

  • Show more/less - Expand or collapse the extension list for easier management

How extensions are installed

During the deployment process, PHP extensions are installed using the install-php-extensions tool. This happens automatically in the build process:

  1. The platform generates a container configuration for your application

  2. Extensions are installed as root user before switching to the web server user

  3. All selected extensions are installed in a single command for efficiency

  4. The installation happens before your application code is copied into the container

Detecting missing extensions

The platform automatically detects when your application requires extensions that aren't enabled:

During build process

When your application's dependencies require extensions that aren't enabled, the build process will:

  1. Analyze composer error messages for "requires ext-" patterns

  2. Extract the specific extension names from error logs

  3. Generate clear recommendations for which extensions to enable

Error messages

If a required extension is missing, you'll see:

  • Build failure notifications in the deployment logs

  • Specific error messages identifying the missing extension

  • Recommendations to enable the extension in settings

Automatic detection examples

The system can detect missing extensions from these types of error messages:

  • Composer dependency errors: "requires ext-gd"

  • Build log analysis showing missing extension requirements

  • Application startup failures due to missing extensions

Recommendations system

When missing extensions are detected, the platform provides helpful recommendations:

Recommendation: Enable the [extension name] extension in settings > PHP extensions

Multiple missing extensions are combined into a single recommendation for easier resolution.

Important notes

  • Deployment required: Changing PHP extensions requires a new deployment to take effect

  • Build time: Extensions are installed during the build process, which may slightly increase build time

  • WordPress applications: WordPress applications automatically receive the mysqli and imagick extensions

  • Performance: Only enable extensions that your application actually uses to minimize resource usage

Troubleshooting

Build failures

If your deployment fails due to missing extensions:

  1. Check the deployment logs for error messages

  2. Look for "requires ext-" patterns in the error output

  3. Enable the required extensions in settings

  4. Redeploy your application

Common issues

  • Image processing: Enable gd or imagick for image manipulation

  • Database connections: Enable pgsql for PostgreSQL or mongodb for MongoDB

  • Caching: Enable redis or memcached for caching solutions

  • Internationalization: Enable intl for locale-specific functions

Getting help

If you encounter issues with PHP extensions:

  1. Review the build logs in your application's deployment history

  2. Check the debug information for specific extension recommendations

  3. Ensure all required extensions are enabled before deploying

The platform's automated detection system will guide you toward the correct extensions needed for your application to run successfully.