UbuntuでPHP7.4 -> PHP8.0へのアップデート
UbuntuでPHP7.4 からPHP8.0にアップデートした際のコマンドの記録です。
webサーバーを動かしている環境でnginx, php-fpmを使用しています。laravelを使用しているため、必要なモジュールもインストールしています。
PHP8.0インストール
apt update apt install software-properties-common add-apt-repository ppa:ondrej/php apt install php8.0 apt install -y php8.0-curl php8.0-gd php8.0-dev php8.0-zip php8.0-mbstring php8.0-mysql php8.0-xml apt install php8.0-fpm
残りはnginxのphp-fpmの切り替えと必要なサービスのみを起動するようにsystemctlでdisableをして作業完了。あとはnginx, php-fpmを再起動してweb表示が表示できれば完了です。
PHP8.1, PHP8.2
apt install php8.1 apt install -y php8.1-curl php8.1-gd php8.1-dev php8.1-zip php8.1-mbstring php8.1-mysql php8.1-xml apt install php8.1-fpm
apt install php8.2 apt install -y php8.2-curl php8.2-gd php8.2-dev php8.2-zip php8.2-mbstring php8.2-mysql php8.2-xml apt install php8.2-fpm
PHPの切り替え
複数のPHPがインストールされている状態になります。ダウングレードしたい場合のためにPHPの切り替え方法も記載します。
update-alternatives --list php sudo update-alternatives --config php
アップデー時のエラー
PHP8.0からPHP8.1にアップデートした際のエラー
SJIS-win削除
csvのSJISを判別するためにmb_detect_encodingを使用していたが、判別できなくなっていました。
CP932を使っても判断できなかったため、mb_detect_encodingでの判別を諦めて規定文字が判断できなかったらCP932に変換する処理に変更しました。
参考
How to Upgrade PHP Version to PHP 8.0 on Ubuntu - Cloudbooklet