This document is intended for use by Nagios Administrators who wish to update their version of php 7.2 to php 7.4 on a CentOS Stream 8 system or an EOL CentOS 8 system.
Enable CentOS 8 vault repos (For EOL CentOS 8 Only)
Since CentOS 8 is now EOL the supporting repos have been moved to CentOS’s vault area. We will need to enable these repos for the upgrade as follows:
mkdir /etc/yum.repos.d/old
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/old/
cat << \EOF > /etc/yum.repos.d/CentOS-vault.repo
[C8-BaseOS]
name=CentOS 8 - BaseOS
baseurl= https://vault.centos.org/8.5.2111/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1
metadata_expire=never
[C8-AppStream]
name=CentOS 8 - AppStream
baseurl= https://vault.centos.org/8.5.2111/AppStream/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1
metadata_expire=never
[powertools]
name=CentOS 8 - PowerTools
baseurl= https://vault.centos.org/8.5.2111/PowerTools/$basearch/os/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1
metadata_expire=never
EOF
cat << \EOF > /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
# It is much more secure to use the metalink, but if you wish to use a local mirror
# place its address here.
#baseurl= https://download.example/pub/epel/$releasever/Everything/$basearch
metalink= https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=1
gpgcheck=0
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
EOF
PHP Upgrade process
From the command line on the XI server:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module list php
Disable the 7.2 module that is enabled:
dnf module reset php:7.2
dnf module list php
dnf module enable php:remi-7.4
dnf install php php-imap php-opcache php-devel php-gd php-ldap php-mbstring php-pdo php-pdo-dblib php-mysqlnd php-pgsql php-pear
sed -i "s:;date.timezone =.*:date.timezone = ${PHPTZ}:" /etc/php.ini
cd /tmp
rm -rf /tmp/nagiosxi
wget https://assets.nagios.com/downloads/nagiosxi/xi-latest.tar.gz
tar zxf xi-latest.tar.gz
cd /tmp/nagiosxi
rm -rf /etc/php.d/sourceguardian.ini
./init.sh
sed -i '/^PHP script/d' xi-sys.cfg
sed -i '/^1)/d' xi-sys.cfg
sed -i '/^2)/d' xi-sys.cfg
sed -i '/^3)/d' xi-sys.cfg
./install-sourceguardian-extension.sh
Edit /etc/php.ini and add 'extension=ixed.7.4.lin' directive (highlighted yellow):
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; If you wish to have an extension loaded automatically, use the following
; syntax:
; extension=modulename
; For example:
; extension=mysqli
;
; When the extension library to load is not located in the default extension
; directory, you may specify an absolute path to the library file:
; extension=/path/to/extension/mysqli.so
;
; Note : The syntax used in previous PHP versions ('extension=<ext>.so' and
; 'extension='php_<ext>.dll') is supported for legacy reasons and may be
; deprecated in a future PHP major version. So, when it is possible, please
; move to the new ('extension=<ext>) syntax.
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;
; added for php 7.4
extension=ixed.7.4.lin
Save the /etc/php.ini.
Restart the server:
shutdown -r now
Article ID: 915
Created On: Wed, Feb 2, 2022 at 9:13 AM
Last Updated On: Wed, May 18, 2022 at 8:04 PM
Authored by: rspielman
Online URL: https://support.nagios.com/kb/article/php-7-2-to-7-4-upgrade-instructions-for-centos-stream-8-915.html