WordPressのPHPを7.4から8.3へ
気になりつつ、手を付けられていなかったのが、今回のテーマ。
WordPressそのもののバージョンは更新を続けているのですが、PHPのバージョンは更新できていなかったんですね。
Windows PCやNASは最新のバージョンに、と言っているくせに放置していたのは、「バージョンアップ時の検証をどうするか」と悩んでいた(というか、面倒なことを避けていた?)からです。
PC上でローカル動作確認
ブログは WordPressで運用しているのですが、5年前にレンタルサーバーを借りて設定したそのままです。
というか、5周年を過ぎちゃいましたね。何もイベントを考えてませんでした(笑)
それはともかく、一度公開した以上、メンテナンス程度の時間だけ停止させるのはいいとして、不具合で長期間停止させたくない、という思いがあるんですね。なので、WordPressを動かすPHPのバージョンを上げることで停止してしまうと問題なので、事前に検証したい、と。
同じサーバに、非公開でコピーを作成する、という手もあるとは思いますが、データベースの用意も意外と手間がかかりますし、そもそもサブドメインでのテストにしても、別ドメイン(レンタルしているスターサーバーでは、無料で利用できるドメインもあります)でのテストにしても、PHPのバージョンアップ以前に、環境構築に時間がかかりそうな感じがしてました。
要は、面倒なことを避けていた、ということですね。。
とはいえ、さすがにこのままじゃダメだ、と、とりあえずChatGPTに相談。
「Local(by Flywheel)」+「Duplicator」でPHPアップデートを事前検証するのは、最も安全かつ確実な方法です。
とのこと。
| 段階 | 内容 |
|---|---|
| ① | 本番サイトで Duplicator パッケージを作成 |
| ② | Local を準備(PHP 8.1/8.2 環境で新サイトを作成) |
| ③ | Duplicator の installer.php + archive.zip を Local に展開 |
| ④ | Local 上で動作確認(エラーや警告の有無を確認) |
| ⑤ | 問題なければ本番PHP切替へ進む |
という流れのようです。
実はこの相談そのものは昨年(2025年)10月時点のものです。ですので、PHPバージョンも現在ではサポート期限切れのものが表示されています。8.2はアクティブサポートが2024年12月31日で切れていて、セキュリティサポートは今年、2026年12月31日までとなっています。8.1は、この回答後の昨年末でセキュリティサポートも終了しています。
というわけで、サーバをレンタルしているスターサーバーが推奨する8.3に上げよう、というのが今回のテーマとなります。
(7.4に至っては、セキュリティサポートが2022年11月28日で切れていて、そのまま3年運用してました。。)
ただ、この提案のままでは問題では?と思います。というのも、まずは、現状のPHP 7.4でLocalで正常に動くことを確認したうえで、8.3への更新をして動作確認する、という手順を踏む方が安全でしょうね。
Duplicator プラグインの導入と環境バックアップ
では、手順に沿って、まずは WordPressに Duplicatorのプラグインを追加します。
「プラグインを追加」で「プラグインの検索」から「Duplicator」を検索すると、恐らくトップに表示されると思います。有効インストール数が100万以上というプラグインです。

インストールが終わったら、バックアップ > 新規 で、バックアップの設定を行います。
詳細は詳しいサイトがあると思いますのでそちらをご確認頂ければ、と思いますが、注意すべき点としては、あくまでもローカルでの検証だけが目的なら、「wp-content/uploads/YYYY/MM/」の動画・画像ファイルはバックアップ対象から外す、ということでしょうか。
バックアップとして一つのzip圧縮ファイルを作りますので、動画ファイルなどが含まれていると恐ろしく時間がかかります。それに、共有サーバならCPU負荷も掛けますので、控えた方がいいでしょうね。
目的はバックアップではなく、ローカルでの動作検証ですので、画像ファイル・動画ファイルが無くても大丈夫です。もちろん、検証画面での画像確認はできませんが、動くかどうか・画面レイアウトが大きく崩れないか、という検証ですので、問題ありません。

このようなサイズ感になればOKじゃないでしょうか。ちなみに、uploads フォルダを含めると、40GBを超えてました。。
スキャンを終えたら、圧縮工程、「ビルド」を行います。
サイズに応じて数分かかりますが、0%で時間がかかるなぁと思えば、数値が上がる前に完了しました(笑)
「インストーラー」と「アーカイブ」が出来るので、両方をダウンロードします。
このダウンロードは、名前の通り、実行しているPC上へのダウンロードですので、これが完了すれば、Duplicatorとしての役目は終わりです。
Localの導入
続いては、Local の導入です。
こちらも、インストール手順などは他のサイトに詳しく書かれていると思いますので、適宜参考の上、導入してください。
WordPressの環境をローカルPCで動かすことに特化したアプリですので、動作検証などにはうってつけのアプリです。
名前などの登録が必要ですが、現在は、WP Engine, Inc.という大手WordPressホスティング企業の傘下で開発されている、商用開発ツールですので、安心して登録いただければと思います。
導入中に引っ掛かった点としては、この選択。

結果としては、営利目的ではない個人ブログなので「Other」で大丈夫そうです。というか、後の動作に影響するものではなく、ただのアンケートのようですね。
それと、起動時のこの画面。

下部の「Create a free account」が必要なのかどうか、ということ。
このアカウント作成、というのは、WP Engine 社のアカウントを作成して、Live Link(外部共有URL)やクラウドバックアップ機能を使うためのものだそうで、今回のようなローカル環境での動作確認だけなら、不要だそうです。
「+ Create a new site」から環境の構築を始めます。
環境作成の際、一時的にアンチウイルスソフトの動作を停止させておくと後の手間は省けるのですが、セキュリティ面との兼ね合いですので、判断はご自身でお願いします。
テスト用と判る名称を付け、ローカルサイトのパスを設定します。
「Choose your environment」では、「Preferred」ではなく「Custom」を選びます。というのもPHPのバージョンを指定したいですからね。
古い7.4世代は、もはや「7.4.30」しか選択肢が無いんですが、致し方なしです。
Webサーバ(Apache/Nginx)やDB(MySQL/PostgreSQL)は、稼働環境に近いものを選択。出来るだけ再現性が高い方がいいですからね。
次の画面でユーザー名とパスワードの入力が求められますが、後程、Dupulicatorで作製したデータベースの読み込みで上書きされますので、何でも大丈夫です。testuser / testpass みたいな感じで。
Advanced options が隠れていますが、これを開いて Select Language を「日本語」にしておいた方がいいかな、と思います。
「Add Site」で生成が始まりますが、アンチウイルス系ソフトを停止していないと、こんなのが出ます。

アプリが hosts fileを書き換えようとしたけれども、拒絶された、ということですね。
なので、手動で書き換えればいいんですが、その間だけ、アンチウイルスソフトを止めておいた方が楽、ではあります。
ちなみに、c:\Windows\System32\Drivers\etc\hosts に、
::1 xxxxxxxx.local
127.0.0.1 xxxxxxxx.local
::1 www.xxxxxxxx.local
127.0.0.1 www.xxxxxxxx.local
という4行が書き加えられます(実際にはコメント行も)。
これによって、ブラウザでの表示が可能になります。
で、ここまでで、まだ空(新規)の環境が出来ただけですので、Duplicatorのデータを流し込みます。
C:\Users\xxxx\Local Sites\ に、作成した名前の環境が出来ていますので、その、app\public\をばっさりと削除します。
そこに、Duplicatorで作製した2つのファイルを置きます。
そのうえで、http://(サイト名).local/installer.php にアクセスすると…。
Duplicatorの設定画面が開くはず、です。
SetupのDatabase: や User: 、 Password: が空欄になっているので、これ何?ってなるんですが、LocalのDatabaseタブを開いたところに書かれている、

Database: local
User: root
Password: root
が入力する文字となります。
入力が出来たら「Validate」ボタンを押します。
恐らく、いろいろと警告が出ると思います。

このような、文字コード絡みのものだけであれば、そのまま下段のチェック(I have read and accept all term & notices)を付けて、Nextで大丈夫なようです。
取り込み時に、内部でいい感じに変換してくれるようです。
取り込み完了後、「Admin Login」をクリック。
WordPressの管理者ログイン画面が表示されます。ログインしなくても、サイトへ移動は出来ます。
画像を取り込んでいないので、縦方向への間延びした画面になるかもしれませんが、画像や動画など以外が表示されれば成功です。
成功と思ったのに…
確かに、表示はされるんですが、ブラウザ(chrome)のタブの読み込み中「くるくる」が止まりません。
他の画面への移動に、恐ろしく時間がかかります。
こういうは、プラグインを疑うんだそうです。
でも、そのプラグインの画面が開かない。。
運よく、というのかプラグイン画面が開きましたので、リンク切れチェック系プラグインを無効化。
これで、即、改善しました。定期的にリンクチェックのリクエストが行われるので、それが影響しているようですね。Localではなく実環境では問題がないので、このプラグイン自体に問題があるとは思いませんが、ひとまずはLocalの環境での無限(に近い)ループでの問題は改善できたようです。
いよいよ PHP8.3化
Localの動作を一旦止めて、Localのアプリ上にある「Overview」タブの「PHP version」を「7.4.30」から「8.3.23」へとアップデート。
アップデートそのものは、すぐに完了しますので、再度サイトを立ち上げ…、あー。停止させたつもりが、稼働中にアップデートしてました。。
でもまぁ、実環境では停止させずに8.3へと上げるわけですから、その確認になったと考えればOKですかね。
ローカルサイトにアクセスすると、問題なく表示が可能でした。記事の編集では、あまり特殊なことはしているつもりはありませんが、いくつかの記事や /wp-admin での設定画面のいくつかを見て、問題ないことを確認。
ローカルでの確認は、問題なさそうです。
本番環境の PHP8.3化
というわけで、本番環境での切替えです。
まず、その前に、先ほど問題となったプラグインを念のため無効化。
その後、サーバー管理ツール(2024年12月18日以前の申し込みのため、旧契約管理画面です)で、[ホームページ] > [PHPバージョン設定]と進みます。

現在が、もはや非推奨の 7.4.33。これを、推奨の 8.3.21 へと変更します。
最新の8.5.2や8.4.12でもいいんでしょうが、やはり、こなれたバージョンがいいんでしょうね。

確認画面が多いと、ドキドキしてしまいますが、「PHPバージョン設定(確定)」をクリック。

無事に、推奨バージョンに上がりました。
改めて、ローカルではなくオンラインのサイトをブラウザで確認。もちろん、こちらには画像も動画もあります。
問題ないようですね。
安心しました。
というわけで、これからは「推奨」バージョンへのアップデートを続けていきたいと思います。












