これはPHP7.4リリース直後の話です。
待ちに待ったPHP7.4正式版ようやくリリースしましたね。性能的にPHP7.3より良くなったらしいので、リリース直後にowner203の世界に入れちゃいましたが…
(2020/1/30追記)
WordPress 5.3.1、そしてNextcloud 18はPHP7.4に対応しました!下記のやり方でPHP7.4(追記時点で最新版は7.4.2)にアップグレードして、今度は問題なく使えました!やった!
アップグレード前の準備
PPA関連
現時点のUbuntu 19.10では、apt公式パッケージにPHP7.4は入っていないので、このPPAを手動で入れる必要があります。
sudo apt-add-repository ppa:ondrej/php
そしてパッケージを最新にしましょう。
sudo apt update sudo apt upgrade
Apacheを停止
アップグレードする前に、Apacheを一旦停止します。
sudo systemctl stop apache2.service
これから本作業に入ります。
アップグレード実行
旧バージョンを削除
まず、今入っているPHP7.x関連のパッケージを調べます。
dpkg -l php7*
PHP7.4を入れる前に、PHP7.3を削除しちゃいましょう。
sudo rm /etc/php/7.3/apache2/php.ini.orig #手動で残したphp.iniのバックアップファイル,邪魔なので先に削除しておく sudo rm /etc/php/7.3/cli/php.ini.orig #同上 sudo apt remove --purge php7.3 libapache2-mod-php7.3 php7.3-mysql php7.3-gd php7.3-json php7.3-curl php7.3-mbstring php7.3-intl php7.3-xml php7.3-xmlrpc php7.3-soap php7.3-zip php7.3-bz2 sudo apt remove --purge php-common php7.3-common php7.3-opcache php7.3-readline sudo apt remove --purge php-imagick php-apcu #入れてるPHP関連パッケージを全部削除する sudo apt autoremove #依存パッケージを削除する
これでPHP関連のものは完璧に削除されるはずです。
新バージョンを導入
新バージョンのPHP7.4をインストールしましょう。
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php7.4-gd php7.4-json php7.4-curl php7.4-mbstring php7.4-intl php7.4-xml php7.4-xmlrpc php7.4-soap php7.4-zip php7.4-bz2 php-imagick php-apcu
新しいPHP7.4の設定ファイルを必要に応じて編集しましょう。
sudo cp /etc/php/7.4/apache2/php.ini /etc/php/7.4/apache2/php.ini.orig sudo vi /etc/php/7.4/apache2/php.ini
/etc/php/7.4/apache2/php.ini memory_limit = 1G post_max_size = 5G upload_max_filesize = 5G
sudo cp /etc/php/7.4/cli/php.ini /etc/php/7.4/cli/php.ini.orig sudo vi /etc/php/7.4/cli/php.ini
/etc/php/7.4/cli/php.ini memory_limit = 1G post_max_size = 5G upload_max_filesize = 5G [APCu] apc.enable_cli = 1
これでPHP7.4は導入・設定完了です。
Apacheを起動
最後にApacheを再起動して終わりです。
sudo systemctl restart apache2.service
アップグレード後の確認
まずコマンドで確認します。
php -v
そこで返されたのはこれです。
Output PHP 7.4.0 (cli) (built: Nov 28 2019 07:27:40) ( NTS )
大丈夫そうですね。念のためphpinfoを開いて見ると、こちらもちゃんと「PHP Version 7.4.0」になっていて問題なさそうなので、早速owner203の世界を開いてみると…
データベース接続確立エラー
あれ?
環境を詳しく調べていないが、たぶんWordPress 5.3.0、Nextcloud 17.0.0の本体かプラグインかアプリのどれかがまだPHP7.4対応していないかも(Nextcloud 17.0.0は確かに対応していなかった)?仕方なくいったんPHP7.3に戻ろうと (´;ω;`)