はじめに
対象読者
- PowerCMS X ユーザーで、
- PowerCMS X の ver. が 3.1 / 2.71 以上で、
- Ubuntu 20.04 で、
- PHP 8.0.x で、
- nginx 環境の人
補足
- PowerCMS X ユーザーでなかったとしても PHP 8.0.x → PHP 8.2.x 更新手順については参考になるかとは思います
- また PHP 8.0.x でなく 8.1.x からの更新でも同じはずです
- なお PowerCMS X は ver. 3.1 / 2.71 から PHP 8.2 に対応しているので、本体の ver. には要注意です
この記事でやること
- Ubuntu 20.04 を 22.04 へ更新しつつ、
- PHP 8.2.x を nginx で動作させて PowerCMS X における実行まで見届ける
手順
Ubuntu 20.04 → 22.04
apt update && apt upgrade
- まず以下コマンドを実行して手元の状態を最新にしておく
apt update
apt upgrade -y
再起動
- 最新にしたら、一度再起動の実行
shutdown -r now
do-release-upgrade
- おそらく Ubuntu 起動時に
do-release-upgrade
をおこなえと表示されているので、その通りにコマンドを実行
do-release-upgrade
- あとは、対話形式で、既存の設定を残すか上書きするか、といったことを問われ続けるので、それに答えて対応を進める
- それなりに時間がかかるので、一時間くらい継続して対応できる時におこなうのをオススメ
再起動
- 最後まで終了したら、また再起動の実行
shutdown -r now
PHP 8.0 → 8.2
前置き
- 以前、以下コマンドを実行して PHP 8.0 をインストールしている場合、既に 8.2 が追加されているはず
apt install software-properties-common
add-apt-repository ppa:ondrej/php
確認
- 以下コマンドで確認
php -v
インストール
- もし
8.2.x
になっていなかったら、次の手順に従ってインストール - なっていたら不要
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt install php8.2
apt install php8.2-gd php8.2-fpm php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip
path 確認
- 以下の path にファイルが存在していることを確認
/run/php/php8.2-fpm.sock
owner, group の設定
- もし nginx ユーザーを
www-data
以外のもの ( たとえばnginx
など ) にしている場合は、上記php8.2-fmp.sock
のowner
,group
をそれに準じてchown
してください。例えば以下のように
chown nginx:nginx /run/php/php8.2-fpm.sock
- また、以下の設定を書き換え
/etc/php/8.2/fpm/pool.d/www.conf
; 前略
user = nginx
group = nginx
; 中略
listen.owner = nginx
listen.group = nginx
; 後略
max_input_vars の設定
- PowerCMS X 公式によると
'max_input_vars'の推奨値は2000以上
とのことなので、それに合わせて書き換えます。サーバスペック等に応じて必要な値を。
/etc/php/8.2/fpm/php.ini
; 前略
max_input_vars = 2000
; 後略
PHP-FPM 再起動
systemctl restart php8.2-fpm.service
apache2 無効化
systemctl disable --now apache2
nginx
設定書き換え
- 以下のように 8.2 へ書き換える
# 前略
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
# 後略
再読込
- さいごに nginx の再読込をおこなうと、ダッシュボードが表示されるようになるはず
nginx -s reload
確認
- 以下の php を実行したときにインストール ver. が確認できる
- いくつかのモジュール等は必須でないのでアラートが表示されていますが、必須のものだけ動いていればヨシ
https://example.com/pt-check.php
おわりに
感想
- 以下関連記事にある、以前の PHP 7 → 8 移行の内容をほぼ使い回していますが、すんなりいきました。良かったです