How to Add PHP & Zend Extension to Server

How to Add PHP & Zend Extension to Server

Introduction

PHP extension is like a module or plugin for PHP. There are two types of PHP extension, namely PHP extension (or the regular one) and Zend extension. You can read the difference between them on this site (PHP: internals:extensions).

In this guide, we will learn how to add PHP & Zend extensions to a web server managed by Paas.id.

Prerequisites

  1. Have installed a web server on Paas.id
  2. Have access to the web server

Step 1 - Login to your Server

Login to your server and make sure you are login with a user with write access.

Step 2 - Download the Extension

Download the PHP extensions and unzip them if needed. Usually, the file has an extension .so.

Step 3 - Put the Extension Files in the Specified Folder

If  the extension is type of Zend extension then you need to put the extension files in this folder.

/home/workspace/web-server/paas-php-ext/{PHP_VERSION}/zend

If  the extension is type of PHP extension then you need to put the extension files in this folder.

/home/workspace/web-server/paas-php-ext/{PHP_VERSION}/php

Step 4 - Check if the Extension is Enabled

Create a PHP file in /home/workspace/web-server/www/public/php-ext.php and write the code below to the file.

<?php 
  print_r(get_loaded_extensions());
?>

Study Case Scenario

In this study case scenario, we will try to install a Zend extension, namely ionCube loader. We will install the extension for PHP 7.4. Firstly, you need to login to your server. Using SSH, you can login by executing the command below (provide the password if asked).

ssh {USERNAME}@{SERVER_PUBLIC_IP}
Login to server via SSH

After logged in successfully to the server, we need to download the ionCube loader. You can download the ionCube loader from the link below.

https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

You can use curl to download the file by executing the command below.

curl -fsSL https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -o ioncube.tar.gz
Download the extension

Because the file is archived, you need to unarchived the file using the command below.

tar -xvf ioncube.tar.gz
Extract the file if needed

The extension file that we will install is ioncube_loader_lin_7.4.so. Now you need to put the extension file in the specified folder, in this case is /home/workspace/web-server/paas-php-ext/7.4/zend/ . You can move the extension file by executing the command below.

sudo mv ioncube/ioncube_loader_lin_7.4.so /home/workspace/web-server/paas-php-ext/7.4/zend/

Also, you can check whether the file is copied/moved correctly by executing the command below.

sudo ls -alh /home/workspace/web-server/paas-php-ext/7.4/zend/
Put the file in the specified folder and make sure the file is copied/moved correctly

Actually, at this point, the file is already installed on your server. Now we need to check if the file is loaded correctly. We can create a PHP script file namely php-ext.php which will be located in /home/workspace/web-server/www/public/. The script file will print out all loaded extensions. You can create and write the script file by executing the command below.

sudo bash -c 'echo "<?php print_r(get_loaded_extensions()); ?>" > /home/workspace/web-server/www/public/php-ext.php'
Create and write the PHP script file

Now you can visit the link below to check whether the extension is loaded or not.  

http://{SERVER_PUBLIC_IP}/php-ext.php

Voila, the ionCube extension is loaded

Conclusion

At this point, you have a PHP extension installed on your server. Installing PHP extensions is easy, you just need to download them and put them in the specified folder.