CentOS 8 で、PHP7.2からPHP7.4にアップデートした時のメモです。
NextCloud 21以降、PHP7.2をサポートしなくなります。また、PHP7.4ではパフォーマンスが向上しているとのことで、アップデートをすることにしました。
PHP7.4にアップデート
# dnf module list php CentOS Linux 8 - AppStream Name Stream Profiles Summary php 7.2 [d][e] 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 ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
# dnf module install php:7.4 依存関係が解決しました。 エラー: モジュールの有効なストリームを切り替えることはできません。 モジュールからインストールされた全てのコンテンツを削除し、 'dnf module reset <module_name>' コマンドを使用してリセットすることが推奨されます。モジュールのリセット後、他のストリームをインストール可能です。
# dnf module reset php 依存関係が解決しました。 ================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ================================================================================================================== モジュールの再設定中: php トランザクションの概要 ================================================================================================================== これでよろしいですか? [y/N]: y 完了しました!
# dnf module install php:7.4 依存関係が解決しました。 ================================================================================================================== パッケージ Arch バージョン リポジトリー サイズ ================================================================================================================== アップグレード: php x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 1.5 M php-bcmath x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 80 k php-cli x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 3.1 M php-common x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 696 k php-devel x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 728 k php-fpm x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 1.6 M php-gd x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 85 k php-gmp x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 76 k php-intl x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 192 k php-json x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 74 k php-ldap x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 85 k php-mbstring x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 484 k php-mysqlnd x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 192 k php-opcache x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 267 k php-pdo x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 123 k php-pecl-apcu x86_64 5.1.18-1.module_el8.3.0+396+9a0d79d6 appstream 64 k php-pecl-zip x86_64 1.18.2-1.module_el8.3.0+396+9a0d79d6 appstream 55 k php-process x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 85 k php-xml x86_64 7.4.6-4.module_el8.3.0+434+2ab5050a appstream 174 k モジュールプロファイルのインストール中: php/common モジュールストリームの有効化中: php 7.4 トランザクションの概要 ================================================================================================================== アップグレード 19 パッケージ ダウンロードサイズの合計: 9.5 M これでよろしいですか? [y/N]: y パッケージのダウンロード: ------------------------------------------------------------------------------------------------------------------ 合計 7.1 MB/s | 9.5 MB 00:01 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 警告: /etc/php.ini は /etc/php.ini.rpmnew として作成されました。 警告: /etc/php-fpm.d/www.conf は /etc/php-fpm.d/www.conf.rpmnew として作成されました。 警告: /etc/php.d/10-opcache.ini は /etc/php.d/10-opcache.ini.rpmnew として作成されました。 警告: /etc/php.d/40-apcu.ini は /etc/php.d/40-apcu.ini.rpmnew として作成されました。 PHP Warning: PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib64/php/modules/zip.so (/usr/lib64/php/modules/zip.so: undefined symbol: zip_register_cancel_callback_with_state), /usr/lib64/php/modules/zip.so.so (/usr/lib64/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933 PHP Warning: PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib64/php/modules/zip.so (/usr/lib64/php/modules/zip.so: undefined symbol: zip_register_cancel_callback_with_state), /usr/lib64/php/modules/zip.so.so (/usr/lib64/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /usr/share/pear/PEAR/PackageFile/v2/Validator.php on line 1933 アップグレード済み: php-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-bcmath-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-cli-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-common-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-devel-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-fpm-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-gd-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-gmp-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-intl-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-json-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-ldap-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-mbstring-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-mysqlnd-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-opcache-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-pdo-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-pecl-apcu-5.1.18-1.module_el8.3.0+396+9a0d79d6.x86_64 php-pecl-zip-1.18.2-1.module_el8.3.0+396+9a0d79d6.x86_64 php-process-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 php-xml-7.4.6-4.module_el8.3.0+434+2ab5050a.x86_64 完了しました!
エラーなど
CLIではWarningが出てしまいました。
PHP Warning: PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib64/php/modules/zip.so (/usr/lib64/php/modules/zip.so: undefined symbol: zip_register_cancel_callback_with_state), /usr/lib64/php/modules/zip.so.so (/usr/lib64/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Nextcloud上では、ZIPモジュールがインストールされていないと出てしまい、ログインができない状態となりました。
とりあえず、php-zipを入れなおしてみることにしました。
# dnf remove php-zip 依存関係が解決しました。 ===================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ===================================================================================================================== 削除中: php-pecl-zip x86_64 1.18.2-1.module_el8.3.0+396+9a0d79d6 @appstream 134 k 未使用の依存関係の削除: libzip x86_64 1.5.1-2.module_el8.2.0+313+b04d0a66 @AppStream 108 k # dnf install php-zip 依存関係が解決しました。 ===================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ===================================================================================================================== インストール: php-pecl-zip x86_64 1.18.2-1.module_el8.3.0+396+9a0d79d6 appstream 55 k 依存関係のインストール: libzip x86_64 1.6.1-1.module_el8.3.0+396+9a0d79d6 appstream 64 k
libzipバージョンが変わりました。
PHP7.4インストール後に、dns updateをしておけば良かったのかもしれません。
これで再び、Nextcloudにアクセスするとログインページが表示されました。
Zabbixの方では、セッションが開始できないと出て、ログインができませんでした。
nginxのerrorログでは、以下のように表示されました。
[error] 1356#0: *86428 FastCGI sent in stderr: "PHP message: PHP Warning: session_start(): op en(/var/lib/php/session/sess_emg34fl6tj0ie6a815o8s3hvrh, O_RDWR) failed: ????????????? (13) in /usr/share/zabbix/i nclude/classes/core/CSession.php on line 45PHP message: PHP Warning: session_start(): Failed to read session data : files (path: /var/lib/php/session) in /usr/share/zabbix/include/classes/core/CSession.php on line 45" while read ing response header from upstream
これは単純に、/var/lib/php/session/のグループが、apacheに変わってしまっていて読み込みが出来ていないだけでした。
# chgrp nginx /var/lib/php/session
その他、Tiny Tiny RSSやrep2の動作は問題無しでした。