How to Locate and Install a PHP Version or Extension
Last modified: July 8, 2022
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, whereusername
represents the user’s username. Run the following command on the command line:
cat .htaccess
|
|
- Use WHM API 1’s
php_get_vhost_versions
function. - Use UAPI’s
LangPHP::php_get_vhost_versions
function.
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.1.
The cPanel default profile includes PHP versions 7.3, 7.4, and 8.0.
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 cPanel, L.L.C. 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
- Any custom PHP package name.
Vendor-provided PHP versions
In cPanel & WHM version 66 and later, EasyApache 4 allows you to use PHP versions that cPanel, L.L.C. 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.
- 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:
|
|
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, wherepackage
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, wherepackage
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:
yum install ea-php56-php-gd
You must install the extension separately for each PHP version. However, in cPanel & WHM version 70 and above, the system attempts to simplify this process. When you install a newer version of PHP, the system automatically selects the extensions used with your older versions, if compatible.