将 AlmaLinux8 上的 PHP 升级到 7.3/7.4/8.0/8.1/8.2 系列
首先
AlmaLinux8でデフォルトでインストールできるPHPは、2022-10-04時点でPHP7.2系です。このほかにも7.x系のPHPや最近では8.x系のPHPも登場してきています。
ここでは、AlmaLinux8におけるPHPのバージョンアップ手順を備忘録としてまとめておきます。
PHP的原始安装源
ここでは、AlmaLinux8標準リポジトリAlmaLinux 8 – AppStreamではなく、epelリポジトリremiリポジトリを用います。たまに、PHPのモジュールが標準リポジトリでは提供されていない場合があり、これを吸収するために外部リポジトリを利用します
更新步骤
1. 添加外部存储库
# epelリポジトリを追加します
dnf -y install epel-release
# remiリポジトリを追加します
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# dnfのメタデータキャッシュを作成しておきます
dnf clean all && dnf -y makecache
目前的PHP删除
# 現在のiniファイルをバックアップしておきます
cp /etc/php.ini /etc/php.ini.bk
# phpパッケージをすべて削除します
# 削除されるパッケージを確認後 y で削除します
dnf remove php-*
3. インストールするPHPバージョンの指定
dnf module list phpで、インストールできるPHPのモジュールリストを確認できます。
dnf module list php
#実行結果
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting language
Remi s Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
デフォルトでは 7.2 が指定されていることがわかります。このデフォルトを指定することでインストールしたいPHPのバージョンとインストール元リポジトリを指定できます。
以下のコマンドを用いてインストールするPHPバージョンとリポジトリを指定します
# remi-7.3を指定する場合
dnf -y module reset php && dnf -y module enable php:remi-7.3
# remi-7.4を指定する場合
dnf -y module reset php && dnf -y module enable php:remi-7.4
# remi-8.0を指定する場合
dnf -y module reset php && dnf -y module enable php:remi-8.0
# remi-8.1を指定する場合
dnf -y module reset php && dnf -y module enable php:remi-8.1
# remi-8.2を指定する場合
dnf -y module reset php && dnf -y module enable php:remi-8.2
# 指定したものをリセットしたい場合
dnf -y module reset php
4. PHP的安装(升级版本)
# phpをインストールします
dnf -y install php php-cli php-fpm php-devel php-pear php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache php-process
请将列出的主要的PHP模块删除,并尝试安装剩下的模块。
5. 检查已安装的PHP版本。
php -v
#実行結果
PHP 7.4.32 (cli) (built: Sep 28 2022 09:09:55) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.32, Copyright (c), by Zend Technologies
6. 将php.ini的配置插入。
vim /etc/php.ini
# 以下は例です
memory_limit = 2G #RAM容量にあわせて調整してください
error_log = /var/log/php_errors.log #phpエラーログファイルパスを指定する
post_max_size = 300M #利用目的にあわせて調整してください
upload_max_filesize = 300M #利用目的にあわせて調整してください
date.timezone = Asia/Tokyo #コメントアウトを外して、Asia/Tokyoを指定してください
mbstring.language = Japanese #コメントアウトを外してください
请根据备份的php.ini.bk文件进行设置输入。
7. PHP-FPM的配置
# php-fpmを自動起動するようにしておきます
systemctl enable php-fpm
8. 将数据加载到Apache
# phpのバージョンが変わったのでApacheを再起動して反映させます
# あわせてphp-fpmも再起動(起動)させます
systemctl restart httpd && systemctl restart php-fpm
9. PHP的运行检查
在/var/www/html的文档根目录下创建一个显示phpinfo()的php文件。
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
ブラウザを開いて、動作確認用のphpファイルにアクセスします。指定したバージョンのPHPが表示されることを確認してください。
最后
在CentOS7上,我們需要在安裝PHP時指定存儲庫名稱,但通過dnf module enable php:****,我們可以指定默認版本和存儲庫,這讓事情變得稍微輕鬆了一些。
然而,仍然有一些OSS尚未適應PHP 8.x系列,因此在進行升級時,請注意PHP的版本。