How to Locate and Install a PHP Version or Extension


Last modified: March 26, 2024

Overview

EasyApache 4 allows the use of multiple versions of PHP. This document explains how to locate and install a PHP version or a PHP extension.

Determine a user’s PHP version

You can determine a user’s PHP version with one of the following methods:

  • Use WHM’s MultiPHP Manager interface (WHM » Home » Software » MultiPHP Manager). This interface allows you to see and change a user’s default PHP version. This is the easiest method to determine a user’s PHP version.

  • Use cPanel’s MultiPHP Manager interface (cPanel » Home » Software » MultiPHP Manager).

  • Navigate to the /home/username/public_html directory, where username represents the user’s username. Run the following command on the command line:

cat .htaccess
You will receive output that resembles the following example:
1
2
3
4
# BEGIN cPanel-generated handler, do not edit
# Use php82 as default
 AddHandler application/x-httpd-php82 .php
# END cPanel-generated handler
In the above example, `# Use php82 as default` indicates that the site uses PHP 8.2.

Install a PHP version

EasyApache 4 supports PHP versions 5.4 through 5.6, PHP versions 7.0 through 7.4, and PHP 8.0 through 8.3.

The cPanel default profile includes PHP versions 8.1 and 8.2.

Note:

EasyApache adheres to the php.net supported versions timeline. The profiles that we supply in WHM’s EasyApache 4 interface (WHM » Home » Software » EasyApache 4) only provide PHP versions that php.net currently supports. RPMs for unsupported versions of PHP will remain the WebPros International, LLC mirrors and servers, but we will not provide any further updates.

You can install a PHP version on your system with one of the following methods:

  • Use WHM’s EasyApache 4 interface (WHM » Home » Software » EasyApache 4) to select the version of PHP that you wish to load.

    Note:

    You can only install cPanel-provided PHP packages in the EasyApache 4 interface. You must use a package manager to install custom PHP packages.

  • Use your package manager’s install command to install your desired PHP version. You can select from the following PHP packages:

    • ea-php54
    • ea-php55
    • ea-php56
    • ea-php70
    • ea-php71
    • ea-php72
    • ea-php73
    • ea-php74
    • ea-php80
    • ea-php81
    • ea-php82
    • Any custom PHP package name.

Vendor-provided PHP versions

EasyApache 4 allows you to use PHP versions that WebPros International, LLC does not provide. These PHP versions must be a Software Collection Library (SCL) package and cannot start with the ea- prefix that EasyApache 4 uses.

  • You cannot use the EasyApache 4 interface (WHM » Home » Software » EasyApache 4) to install vendor-provided versions of PHP. You must use a package manager to install these packages on your system. For more information, read our Package Manager Basics documentation.
  • After you install the packages, you can use WHM’s MultiPHP Manager interface (WHM » Home » Software » MultiPHP Manager) and WHM’s MultiPHP INI Editor interface (WHM » Home » Software » MultiPHP INI Editor) to make changes.
Important:
  • The DSO PHP handler is not available with Red Hat® Enterprise Linux® (RHEL) and CloudLinux™ PHP packages.
  • SCL PHP packages require a vendor prefix in order to install in EasyApache 4. For example, you cannot use RHEL PHP versions 5.4 or 5.5 because these packages do not begin with a vendor prefix.
  • Not all vendor-provided PHP packages will contain all of the files that EasyApache 4’s MultiPHP system requires. You may experience additional limitations.

Potential issues

Some potential issues exist in vendor-provided versions of PHP.

Vendor-provided php.ini does not exist

In some cases, a vendor-provided PHP version’s php.ini file will not exist in the directory that cPanel & WHM requires. For example, RHEL’s PHP 5.6 .ini file exists in the /opt/rh/rh-php56/register.content/etc/opt/rh/rh-php56 directory, but cPanel & WHM expects it in the /opt/rh/rh-php56/root/etc directory. You must create a symlink in order for the MultiPHP system to read the php.ini file.

To create the symlink, use the following command, where php56 represents the PHP version that you wish to use:

ln -s /opt/rh/rh-php56/register.content/etc/opt/rh/rh-php56 /opt/rh/rh-php56/root/etc

If you installed the PHP version before you created the symlink, you must reinstall the PHP version with the following command, where php56 represents the PHP version that you wish to use:

yum reinstall rh-php56*
PHP CLI and PHP CGI binaries in different locations

Some PHP versions include the PHP CLI and PHP CLI binaries in different locations than cPanel & WHM’s implementation. In these cases, the PHP installation reverses the location of these binaries. If your PHP version does this, then the following issues may occur:

  • The php-cgi binary path will not exist.
  • The php-cli binary path will be incorrect.

To fix this issue, use the following commands, where prefix represents the vendor prefix and package represents the package name:

1
2
mv /opt/prefix/package/root/usr/bin/php /opt/prefix/package/root/usr/bin/php-cgi
mv /opt/prefix/package/root/usr/bin/php-cli /opt/prefix/package/root/usr/bin/php

Find a PHP module or extension

You can find a PHP module or extension with one of the following methods:

  • Use WHM’s EasyApache 4 interface (WHM » Home » Software » EasyApache 4).
  • Run the rpm -qa | grep -i package command, where package represents part of the name of the package that you wish to install, to determine if the package is already installed.
  • Run the yum list package command, where package represents part of the name of the package that you wish to install, to determine if the package is available.

Install a PHP module or extension

EasyApache 4’s packages for PHP modules and extensions use the ea-php##-php-module naming convention, where ## represents the PHP version number and module represents the name of the PHP module.

Install a PHP module or extension on your system with one of the following methods:

  • Use WHM’s EasyApache 4 interface (WHM » Home » Software » EasyApache 4).
  • Install the package on the command line with the following command:
    Operating SystemCommand
    CentOS 7yum install ea-php82-php-gd
    AlmaLinux OS and Rocky Linux™dnf install ea-php82-php-gd
    Ubuntu®apt install --purge ea-php82-php-gd

    The above example installs the ea-php82-php-gd package, where 82 represents the PHP version and gd represents the extension name.
    Important:

    When you install a newer version of PHP, the system automatically selects the extensions used with your older versions, if compatible.

Additional Documentation