Building a PHP Extension

CloudPanel v1 is obsolete

CloudPanel v1 is obsolete; check out the CloudPanel v2 Docs.

On this site, you find a step-by-step guide on how to build a PHP Extension for a specific PHP Version.

Building a PHP Extension

  1. Make a backup of your server.

  2. Install the dev package for the PHP Version.

apt update && apt install -y php8.0-dev
  1. Go to https://pecl.php.net/ and search for the extension like ssh2:
  1. Download the tgz via cURL:
curl -O https://pecl.php.net/get/ssh2-1.3.1.tgz
  1. Extract the tgz:
tar xf ssh2-1.3.1.tgz
  1. phpize the extension:
cd ssh2-1.3.1
phpize8.0
  1. Compile and build the extension:
./configure
make
make install
  1. Register the extension for CLI and FPM in the php.ini:

CLI

nano /etc/php/8.0/cli/php.ini

Add the following line at the end:

extension=ssh2.so

FPM

nano /etc/php/8.0/fpm/php.ini

Add the following line at the end:

extension=ssh2.so
  1. Restart the PHP-FPM service:
systemctl restart php8.0-fpm

Testing

After registering the PHP Extension, you can check if the extension is loaded for CLI and FPM correctly.

CLI

You can use grep to check if the extension is loaded:

php8.0 -m |grep 'ssh2'

If you don't get an output, then the extension is NOT loaded.

FPM

To check if the extension is loaded for FPM, you can check the phpinfo.

  1. Create the file t.php in the root directory.

  2. Put the following content in the file:

<?php
phpinfo();
  1. Open t.php in your browser and search for the extension.

If you don't find information about the extension, then it's NOT loaded.