PHP 7 から PHP 8 へのアップグレード

前提条件

  • root ユーザでターミナルウィンドウを開き、次のコマンドを入力します。
php --version

次のような応答が得られます。

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

Rocky Linux 8/AlmaLinux 8/RHEL 8

PHP 8.0 へのアップデート

  • リポジトリの設定:
dnf module reset php -y
dnf -y module enable php:remi-8.0
  • 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
  • php-fpm の再起動: systemctl restart php-fpm
  • インストールバージョンの確認: php -v

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

CentOS 7 の EoL は 2024年6月です。

CentOS 7 での PHP 8.0 へのアップデート

  • リポジトリを設定します。
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
  • PHP 8 とその依存ファイルをインストールします。
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
  • ウェブサーバの再起動: systemctl restart httpd
  • インストールバージョンの確認: php -v

CentOS 7 での PHP 8.2 へのアップデート

  • リポジトリを設定します。
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
  • PHP 8 とその依存ファイルをインストールします。
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
  • ウェブサーバの再起動: systemctl restart httpd
  • インストールバージョンの確認: php -v

RHEL 7

RHEL 7 で PHP 8 にアップグレードするには、Pandora FMS サポート へ連絡ください。

Pandora FMS ドキュメント一覧に戻る