I needed to upgrade my WHMCS host server to utilize PHP 7.4. I am coming from PHP7.3 and found it pretty straight forward of an upgrade. Also, 7.3 is end of life and only on security updates right now.
Step 1: First thing I would do is back up your server you are updating. If you can, do a snapshot.
Step 2: Update your server
yum install epel-release yum-utils -y
yum update -y
Step 3: Check the version of the PHP that is currently running.
Step 4: List all the PHP packages you have installed into a file, so you can refer to it to install all those packages in PHP 7.4
rpm -qa | grep php > /home/php_rpm_originals.txt
Step 5: Remove all the installed PHP packages
Step 6: Install the updated Remi repository if it is not already installed.
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Step 7: Enable the PHP 7.4 repository, install the core and required PHP packages. You can also refer to step 4 for the previously required packages.
yum --enablerepo=remi-php74 install php php-pdo php-fpm php-gd php-mbstring php-mysql php-curl php-mcrypt php-json php-bcmath php-tidy php-tcpdf php-xmlrpc -y
Step 8: Check the updated PHP version.
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
Step 9: Restart Apache to use the newly installed PHP 7.4
Step 10: Check what architecture you are running – in my case it was 64bit
Linux madgenius.com 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Step 11: Download your version of the ioncube loaders
——————– For 64-bit System ——————–
cd /tmp
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
——————– For 32-bit System ——————–
cd /tmp
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
Step 12: unzip and move into the directory
tar -zxvf ioncube_loaders_lin_x86*
cd ioncube/
ls -ltrh
Step 13: Obtain your PHP location for modules.
php -i | grep extension_dir
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
Step 14: Copy the files you need, in our case it was 7.4.
cp ioncube_loader_lin_7.4.so ioncube_loader_lin_7.4_ts.so /usr/lib64/php/modules
Step 15: Modify your php.ini file to include ioncube. I added mine at the top right below [PHP]. The line you want to add is:
zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.4.so
Once done editing, hit ESC and then type in :X and hit ENTER
Step 16: Restart apache or nginx/php-fpm servers
——————– Start Apache Web Server ——————–
——————– Start Nginx + PHP-FPM Server —————-
systemctl restart nginx
systemctl restart php-fpm
Verify install:
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with the ionCube PHP Loader + ionCube24 v11.0.1, Copyright (c) 2002-2022, by ionCube Ltd