【Linux】WordPress6.1.1導入済のUbuntu20.04を、22.04にアップグレードしたら不具合が出た話

Linux

Ubuntu20.04にWordPress6.1.1が導入されているテストサーバーがあり、22.04へのアップグレード作業を行う。
不具合が出た所でテストサーバーなので影響は無い。
むしろ不具合が出て、様々な対処方法を蓄積できた方がいい(笑)

22.04へアップグレード

手っ取り早く、GUI環境からアップグレード。

アップグレード終了後Wordpressの動作確認を行うと、ブラウザ内にphpのソースコードが表示され正常動作しない。
phpのバージョンも異なり、php.iniも変更していないので動作しないのは想定内。

そもそもUbuntu20.04ではphp7.4、Ubuntu22.04ではphp8.1が標準となっている。
とりあえず8.1のphp.iniを7.4に合わせるように変更し、apacheのphpモジュールを7.4から8.1に切り替える。

php8.1の動作環境を行う

現在の設定(php7.4)を無効化する。

sudo a2dismod

Your choices are: access_compat alias auth_basic authn_core authn_file authz_core authz_host authz_user autoindex deflate dir env filter mime mpm_prefork negotiation php7.4 reqtimeout rewrite setenvif socache_shmcb ssl status
Which module(s) do you want to disable (wildcards ok)?

モジュールを有効化(php8.1を指定)

sudo a2enmod

設定完了後、apacheを再起動。

sudo service apache2 restart

動作確認前に、Wordpressのデバッグモードに切り替えておく。
(切替はwp-config.phpの変数名WP_DEBUGをtrueにする)

実行後、まだエラーが発生。

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/wp-includes/Requests/Cookie/Jar.php on line 63

WordPress6.1.1はphp8.1に対応されているはずなんだけど・・・
一度7.4に戻してみよう!

php7.4を再導入してみる

Ubuntu22.04の標準リポジトリにはPHP7.4がない為、PHP7.4を持っているリポジトリを追加

sudo add-apt-repository ppa:ondrej/php

バージョン7.4が追加されたか存在を確認する。

sudo apt search php7.4

存在していればインストール!(環境に合わせてその他のphp7.4モジュールもインストール)
sudo apt install -y php7.4

その後動作確認を行うと、問題無く正常動作した。

まとめ

WordPress6.1.1導入済のUbuntu20.04は、22.04にアップグレードしてもWordpressは動作しなかった。
php8.1で動作しない原因については、また別途行う事にする。

今まで開発してきたphpアプリも、php8.1への影響は出てくれば膨大な作業量が発生しそうΣ(・□・;)

コメント