久しぶりにWordpressの管理画面に入ったらPHPのバージョンアップをしてくださいみたいな警告が出ていて、バージョンアップをしなくても動くには動くんですが、今回PHP8.1にバージョンアップしてみました。
目次
動作環境
Raspberry pi で動かしていてBusterです。
| cat /etc/os-release PRETTY_NAME=”Raspbian GNU/Linux 10 (buster)” NAME=”Raspbian GNU/Linux” VERSION_ID=”10″ VERSION=”10 (buster)” VERSION_CODENAME=buster |
phpは7.3でした。
Apache MPM+php fpm構成です。
php8.1の導入
以下のサイトを参照しました。

リポジトリを追加
| sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo “deb https://packages.sury.org/php/ buster main” | sudo tee /etc/apt/sources.list.d/php.list |
busterと書いた部分はリンク先では$(lsb_release -sc)となっていますが、私のBusterではlsb_releseが導入できず、エラーになるので”buster”を明示
| sudo apt update sudo apt install -y php8.1 |
php7.3で導入済みモジュールを見ると以下のような感じだったのでとりあえず同じのを入れる。php8.1のjsonは他のモジュールと統合された感じのメッセージが出て無かったな。
php8.1をWordpressが使うように設定
Apacheとphpの連携(MPM Event+php-fpmの場合)
Apacheをpre-forkとかMPM Moduleで使っている時は確か”a2enmod”でApacheにphpのモジュールを読み込ませて使っていると思いますが、MPM Event+php-fpmの構成では以下のように動作する。(私の場合はApacheとphp-fpmをunix socketで連携している)
- ユーザーリクエスト
- Apacheで受信
- phpを動作させる場合、Site Enabledで設定した設定を参照
- unix socketでphp-fpmへ連携
なので、Apacheのsite設定変更が必要。
Apacheの設定
私の場合、ssl通信が来た時の設定に記述していました。php-fpmのバージョンを書き換え
基本的にはこれだけでOKですが、fpmの設定がデフォルトになっているので7.3の時の設定に変更しました。
php-fpmの設定
デフォルトであれば以下のファイルを変更する。
/etc/php/8.1/fpm/pool.d/www.conf
- fpm の代表的なパラメーター
- pm.max_children 最大プロセス数
- pm.start_servers 初期起動プロセス数
- pm.min_spare_servers 最低限稼働させるアイドルプロセス数
- pm.max_spare_servers アイドルプロセス数の最大数
- pm.process_idle_timeout アイドル時セッションタイムアウト時間
- pm.max_requests 1プロセスの最大処理数(越えたらプロセス停止)
APCu , OPC の導入
私はパフォーマンス向上のためにAPCu,OPCを導入していたので、今回も導入する。
こちらが過去の記事

OPCに関しては”php8.1-opcache”を入れれば何もしなくてもOKでした。
APCは以前peclで導入したんですが、今回は”php8.1-apcu”を入れる必要がありました。
apt-getなどで入れてください。
/etc/php/8.1/mods-available に apcu.ini ができると思います。
できなければ手動で作成。私は以下のような設定を入れています。
| extension=apcu.so apc.enabled=1 apc.enable_cli=1 apc.shm_size=32M apc.ttl=86400 apc.gc_ttl=86400 |
/etc/php/8.1/fpm/conf.d に 20-apcu.ini があれば大丈夫です。
なければ以下のようにシンボリックリンクを作成
| ln -s /etc/php/8.1/mods-available/apcu.ini /etc/php/8.1/fpm/conf.d/20-apcu.ini |
php7.3-fpmの自動起動の無効化
php7.3-fpmがsystemd経由での自動起動になっていたので自動起動を無効化
| systemctl list-unit-files : php7.3-fpm.service enabled : |
なので無効化にする
| systemctl disable php7.3-fpm.service Removed /etc/systemd/system/multi-user.target.wants/php7.3-fpm.service.systemctl list-unit-files : php7.3-fpm.service disabled : |
再起動してpsコマンドなどで自動起動しないことを確認してください
終わりに
今回、php.iniの設定については記載省略するので必要に応じて設定してください。
忘れている事があるかもしれないのでうまくいかなかったらごめんなさい。
