Install PHP 8.1 Latest version in CWP control panel

In this tutorial we’ll install most awaited php version in CWP control panel as php switcher. This easy guide will guide you upon how to install PHP 8 easily.

PHP 8.1 comes with numerous improvements and new features such as:

  • – Enumerations
  • – Readonly properties
  • – Fibers
  • – Pure Intersection Types
  • – never return type
  • – First-class Callable Syntax
  • – “final” modifier for class constants
  • – New fsync and fdatasync functions
  • – New array_is_list function
  • – Explicit Octal numeral notatio

PHP 8.1 will not support your current php scripts/cms/themes. Check before shifting to php 8.1.

Step 1 :

Building files which are required to compile php 8.1

Centos 7/el7 :

yum install oniguruma oniguruma-devel gcc make gcc-c++ cpp kernel-headers.x86_64 libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel openldap-devel postgresql-devel aspell-devel net-snmp-devel libxslt-devel libc-client-devel libicu-devel gmp-devel curl-devel libmcrypt-devel pcre-devel sqlite-devel db4-devel enchant-devel libXpm-devel mysql-devel readline-devel libedit-devel recode-devel libtidy-devel libtool-ltdl-devel libwebp libwebp-devel expat expat-devel libargon2 libargon2-devel  

Centos 8/stream/el8 :

yum install oniguruma oniguruma-devel gcc make gcc-c++ cpp kernel-headers.x86_64 libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel openldap-devel postgresql-devel aspell-devel net-snmp-devel libxslt-devel libc-client-devel libicu-devel gmp-devel curl-devel libmcrypt-devel pcre-devel sqlite-devel libdb-devel enchant-devel libXpm-devel mysql-devel readline-devel libedit-devel recode-devel libtidy-devel libtool-ltdl-devel libwebp libwebp-devel expat expat-devel libmemcached libmemcached-devel libargon2 libargon2-devel  
Now we’ll build libzip and pcre2 :

Install EPEL :

yum install epel-release

Then install some more dependencies and remove the libzip package :
Centos 7 :

rpm -e --nodeps libzip libzip-devel
yum -y install cmake3 cmake zlib-devel --enablerepo=epel

Centos 8 :

rpm -e --nodeps libzip libzip-devel
yum install cmake zlib-devel
ln -s /usr/bin/cmake /usr/bin/cmake3

Installing Latest version Libzip from source :

cd /usr/local/src
rm -rf libzip*
wget https://libzip.org/download/libzip-1.5.1.tar.gz
tar zxvf libzip*
## for centos 7 :
cd libzip*
## for centos 8 :
cd libzip*/
mkdir build
cd build
/usr/bin/cmake3 ..
make && make install

Installing Latest version pcre2 from source :

cd /usr/local/src
rm -rf pcre2*
wget https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.zip -O pcre2.zip  
unzip pcre2.zip
## for centos 7 :
cd pcre2-*
## for centos 8 :
cd pcre2-*/
./configure
make && make install

Install Latest libavif for new AVIF GD image support:

cd /usr/local/src
rm -rf master* libavif-* build-dir
wget https://github.com/AOMediaCodec/libavif/archive/refs/heads/master.zip
unzip master.zip
mkdir build-dir
cd build-dir
#Run this if you've centos 7/el7:
cmake3 ../libavif-main
#Run this if you've centos 8/stream/el8 or up:
cmake ../libavif-main
make
make install

Step 2 :

Configuring pkg-config path variables

run the below command :

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig

After you installed deps and exporting path variable continue to install php 8 with this steps :

mkdir -p /usr/local/php-81
cd /usr/local/php-81
wget http://php.net/distributions/php-8.1.18.tar.gz
tar zxvf php-8.1.18.tar.gz
cd php-8.1.18
./configure --with-config-file-path=/usr/local/php --enable-cgi --with-config-file-scan-dir=/usr/local/php/php.d --with-zlib=/usr --enable-mbstring --with-zip --enable-bcmath --enable-pcntl --enable-ftp --enable-exif --enable-calendar --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-tidy --with-curl --with-iconv --with-gmp --with-pspell --enable-gd --with-avif --with-jpeg --with-freetype --enable-gd-jis-conv --with-webp --with-zlib-dir=/usr --with-xpm --with-openssl --with-pdo-mysql=mysqlnd --with-gettext=/usr --with-bz2=/usr --with-mysqli --enable-soap --enable-phar --with-xsl --with-kerberos --enable-posix --enable-sockets --with-external-pcre --with-libdir=lib64 --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-intl --with-password-argon2 --enable-litespeed --with-ldap=/usr --with-ldap-sasl=/usr  
make
make install

it will take some time depends on your server speed when it is finished you can check the php version via command :

php -v

eg :

# php -v
PHP 8.1.18 (cli) (built: April 14 2023 11:09:47) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies

if you’ve any question comment below or for discussion go to our forum link : https://forum.mysterydata.com

Back to top button