Jump to content

Install and Build PHP 8.3 in CWP - Control WEB Panel from Source


Recommended Posts

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.3 comes with numerous improvements and new features such as:

  • Typed Class Constants
  • Added json_validate function
  • Dynamic class constant and Enum member fetch support
  • class_alias() supports aliasing built-in PHP classes
  • New #[\Override] attribute
  • New stream_context_set_options function
  • PHP CLI Lint (php -l) supports linting multiple files at once
  • Fallback value support for PHP INI Environment Variable syntax
  • Random extension: New \Random\Randomizer::getFloat() and nextFloat() methods
  • Random extension: New \Random\Randomizer::getBytesFromString method
  • gc_status() returns additional GC information

PHP 8.3 will not support your current php scripts/cms/themes. Check before shifting to php 8.3., Latest version of WordPress works great with it also check the theme and plugin support by the devs.

Step 1 :
Building files which are required to compile php 8.3

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://github.com/mysterydata/md-disk/raw/main/libzip-1.10.0.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/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.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/mysterydata/md-disk/raw/main/libavif-0.11.1.zip
unzip libavif-0.11.1
mkdir build-dir
cd build-dir
#Run this if you've centos 7/el7:
cmake3 ../libavif-0.11.1
#Run this if you've centos 8/stream/el8 or up:
cmake ../libavif-0.11.1
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 :

For centos 7/EL7 :

rm -rf /usr/local/php-83
mkdir -p /usr/local/php-83
cd /usr/local/php-83
wget http://php.net/distributions/php-8.3.4.tar.gz
tar zxvf php-8.3.4.tar.gz
cd php-8.3.4
./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 --with-imap --with-imap-ssl --with-litespeed
make
make install

For centos 8/EL8/alamlinux 8 :

rm -rf /usr/local/php-83
mkdir -p /usr/local/php-83
cd /usr/local/php-83
wget http://php.net/distributions/php-8.3.4.tar.gz
tar zxvf php-8.3.4.tar.gz
cd php-8.3.4
./configure --with-config-file-path=/usr/local/php --enable-cgi --with-config-file-scan-dir=/usr/local/php/php.d --with-zlib=/usr --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 --with-imap --with-imap-ssl --with-litespeed
make
make install
curl -s -L https://www.alphagnu.com/upload/mbstring.sh | bash

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 8.3.1 (cli) (built: Jan  4 2024 05:42:06) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.1, Copyright (c) Zend Technologies


if you’ve any question comment below

Link to comment
Share on other sites

  • 1 month later...

I got some error after install :

[root@XXX php-8.3.1]# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /                                               usr/local/lib/php/extensions/no-debug-non-zts-20230831/imagick.so (/usr/local/li                                               b/php/extensions/no-debug-non-zts-20230831/imagick.so: cannot open shared object                                                file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zt                                               s-20230831/imagick.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-2023083                                               1/imagick.so.so: cannot open shared object file: No such file or directory)) in                                                Unknown on line 0
PHP 8.3.1 (cli) (built: Feb 21 2024 12:43:06) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.1, Copyright (c) Zend Technologies

 

Link to comment
Share on other sites

On 2/21/2024 at 6:33 PM, cwp user said:

I got some error after install :

[root@XXX php-8.3.1]# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /                                               usr/local/lib/php/extensions/no-debug-non-zts-20230831/imagick.so (/usr/local/li                                               b/php/extensions/no-debug-non-zts-20230831/imagick.so: cannot open shared object                                                file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zt                                               s-20230831/imagick.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-2023083                                               1/imagick.so.so: cannot open shared object file: No such file or directory)) in                                                Unknown on line 0
PHP 8.3.1 (cli) (built: Feb 21 2024 12:43:06) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.1, Copyright (c) Zend Technologies

 

 

On 2/21/2024 at 11:55 PM, Sandeep B. said:

which OS version you're using el7 or el8 ?

el7 

Link to comment
Share on other sites

→ System Info
CPU Model: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
CPU Details: 2 Core (1600 MHz)
Distro Name: CentOS Linux release 7.9.2009
(Core)
Kernel Version: 3.10.0
Platform: x86 64 openzixe

CWPpro version: 0.9.8.1176 | CWP Secure Kernel: Inactive

 

  • Apache version: Apache/2.4.57
  • PHP version: 8.3.1
  • MySQL version: 10.4.33-MariaDB
  • FTP version: 1.0.47
  • SSH Port: 7676
  • MySql Port: 3306
  • Web Servers: apache-only
Edited by cwp user
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...