====== Upgrading from PHP 7 to PHP 8 ======
{{indexmenu_n>18}}
===== Prerequisites =====
* Open a terminal window with the **root** user and enter the following command:
php --version
You will get an answer similar to the following:
PHP 7.4.29 (cli) (built: Apr 12 2022 10:55:38) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
* Perform a data backup procedure. See "[[:en:documentation:pandorafms:technical_annexes:07_backup_and_restore_procedures|Backup and Restore Procedures]]" for details.
===== Rocky Linux 8/AlmaLinux 8/RHEL 8 =====
==== Updating to PHP 8.0 ====
* Configure the repositories:
dnf module reset php -y
dnf -y module enable php:remi-8.0
* Install PHP:
dnf install -y \
php php-mcrypt php-cli php-gd \
php-curl php-session php-mysqlnd \
php-ldap php-zip php-zlib php-fileinfo \
php-gettext php-snmp php-mbstring \
php-pecl-zip php-xmlrpc \
php-xml php-yaml
* Restart php-fpm ''systemctl restart php-fpm''.
* Verify the version installed: ''php -v''.
==== Updating to PHP 8.2 ====
dnf module reset php -y
dnf -y module enable php:remi-8.2
dnf install -y \
php php-mcrypt php-cli php-gd \
php-curl php-session php-mysqlnd \
php-ldap php-zip php-zlib php-fileinfo \
php-gettext php-snmp php-mbstring \
php-pecl-zip php-xmlrpc \
php-xml php-yaml
systemctl restart php-fpm
===== Ubuntu server 22.04 =====
dpkg -l | grep php | tee packages.txt
# Remove old PHP
# When upgrading from older PHP version:
a2disconf php8.1-fpm 2> /dev/null
a2disconf php8.0-fpm 2> /dev/null
dpkg -l | grep php | awk '{print $2}' | xargs apt -y purge
## Define new php
export DEBIAN_FRONTEND=noninteractive
export NEEDRESTART_SUSPEND=1
export PHPVER="8.2"
add-apt-repository ppa:ondrej/php
apt update
apt install -y php$PHPVER php$PHPVER-fpm php$PHPVER-common \
php$PHPVER-cli libapache2-mod-fcgid apache2 \
php$PHPVER-bz2 php$PHPVER-mbstring php$PHPVER-intl php$PHPVER-mcrypt \
php$PHPVER-gd php$PHPVER-curl php$PHPVER-mysql php$PHPVER-ldap \
php$PHPVER-fileinfo php$PHPVER-gettext php$PHPVER-snmp php$PHPVER-mbstring \
php$PHPVER-zip php$PHPVER-xmlrpc php$PHPVER-xml php$PHPVER-yaml
a2enmod proxy_fcgi setenvif
a2enconf php$PHPVER-fpm
## Prepare php config
rm -f /etc/php.ini
ln -s /etc/php/$PHPVER/fpm/php.ini /etc/
sed --follow-symlinks -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
sed --follow-symlinks -i -e "s/^max_execution_time.*/max_execution_time = 0/g" /etc/php.ini
sed --follow-symlinks -i -e "s/^upload_max_filesize.*/upload_max_filesize = 800M/g" /etc/php.ini
sed --follow-symlinks -i -e "s/^memory_limit.*/memory_limit = 800M/g" /etc/php.ini
sed --follow-symlinks -i -e "s/.*post_max_size =.*/post_max_size = 800M/" /etc/php.ini
sed --follow-symlinks -i -e "s/^disable_functions/;disable_functions/" /etc/php.ini
systemctl enable php$PHPVER-fpm --now
systemctl restart php$PHPVER-fpm
systemctl restart apache2
===== CentOS 7 =====
The end-of-life of the CentOS 7 operating system is June 2024.
==== Upgrading CentOS 7 to PHP 8.0 ====
* Configure the repositories:
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php80
* Install PHP 8 and its dependencies:
yum install -y \
php-mcrypt php-cli php-gd php-curl php-session \
php-mysqlnd php-ldap php-zip php-zlib php-fileinfo \
php-gettext php-snmp php-mbstring php-pecl-zip \
php-xmlrpc php-xml php-yaml mod_php
* Restart the web server: ''systemctl restart httpd'' .
* Verify the version installed with: ''php -v'' .
==== Upgrading CentOS 7 to PHP 8.2 ====
* Configure the repositories:
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php82
* Install PHP 8 and its dependencies:
yum install -y \
php-mcrypt php-cli php-gd php-curl php-session \
php-mysqlnd php-ldap php-zip php-zlib php-fileinfo \
php-gettext php-snmp php-mbstring php-pecl-zip \
php-xmlrpc php-xml php-yaml mod_php
* Restart the web server: ''systemctl restart httpd'' .
* Verify the version installed with: ''php -v'' .
===== RHEL 7 =====
To upgrade to PHP 8 in RHEL 7 [[https://pandorafms.com/en/technical-support/|contact Pandora FMS support department]].
[[:en:documentation:start|Go back to Pandora FMS documentation index]]