仕事

【ConoHa WING】WordPressのPHPバージョンを上げる手順|7.4→8.3で出たエラーと直し方

ConoHa WINGでPHPを7.4から8.3に上げた

このブログ、4年前に作ってから、PHPが7.4のままだった。2022年にサポートが終わったバージョンだ。

気づいたきっかけは、2026年10月のphp2shell騒ぎ。そのときの話は別の記事に書いた。(参照:https://sneakyblog.com/php2shell-conoha-wing/)

で、いざPHPを上げようとしたら、「先にPHPを上げたらWordPressが壊れるかも」「上げたら全ページに警告が出た」と、ちょいちょいハマった。

ということで今回は、ConoHa WINGでWordPressのPHPを上げる手順を、俺が実際にやった順番で書く。

どうも、スニーキーです。

結論:この順番でやれば壊れない

ConoHa WINGでPHPを上げる順番
  • 自動バックアップがあるか確認する
  • 今のPHPとWordPressのバージョンを確認する
  • WordPress本体 → プラグイン → テーマを先に更新する
  • ConoHaでPHPを切り替える
  • 全ページを見て、警告が出たら直す

一番大事なのは3。PHPより先にWordPressを上げる。理由はこの下で説明する。

今のPHPのバージョンを確認する

サイトヘルスでPHPのバージョンを確認(再現図)

WordPressの管理画面だけで確認できる。

「ツール」→「サイトヘルス」→「情報」タブ →「サーバー」を開くと、「PHP バージョン」が書いてある。俺のは 7.4.33 だった。

ちなみにConoHa WINGは、脆弱性が出たときにバージョン番号を変えずにパッチを当てることがある。php2shellのときもそうで、サイトヘルスに出る番号は前と同じだった。(参照:https://www.conoha.jp/wing/news/?ap=2015054909)

なので「番号が古い=穴が開いている」とは限らない。ただ、7.4自体はもうサポートが終わっているので、上げたほうがいいのは変わらない。

なぜWordPressを先に上げるのか

WordPressとPHPの組み合わせ

WordPress公式の対応表を見ると、WordPress 6.0はPHP 8.2に対応していない。逆に、WordPress 7.1はPHP 7.4でも動く。(参照:https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/)

つまり、新しいWordPressは古いPHPでも動くけど、古いWordPressは新しいPHPで動かないことがある。だから順番は「WordPressが先、PHPが後」。

俺のWordPressは6.0.2だったので、先にPHPを上げていたら危なかったと思う。

自動バックアップを確認する

ConoHaの自動バックアップ一覧

ConoHa WINGの「サーバー管理」→「自動バックアップ」を開く。俺のところには直近4日分があって、Web・メール・データベース全部「リストア可」になっていた。

壊れてもここから戻せる。これを見てから作業すると、気持ちがかなり楽になる。

WordPress本体・プラグイン・テーマを先に更新する

プラグインは全部最新に

俺は、プラグインをいったん全部止めてから、WordPressを6.0.2から7.1.3に一気に上げた。WordPress公式の文書にも「バックアップがあれば、古い版から最新版まで一度に上げられる」とある。(参照:https://developer.wordpress.org/advanced-administration/upgrade/upgrading/)

そのあと、古かったプラグインを更新して、1つずつ有効に戻した。1つ戻すたびに、トップページと記事ページが表示されるか確認した。こうしておくと、もし壊れても犯人がすぐ分かる。

テーマのAFFINGER6も、最終版(20260520)に上げた。変更履歴に「PHP8.2への対応」が入っていた。俺はこれを後回しにしたせいで、あとで痛い目を見た笑

ちなみにここまでで、だいたい20分くらいだった。

ConoHaでPHPを切り替える

ConoHaのPHP設定。ドメインごとにバージョンを選べる

ConoHa WINGの「サイト管理」→「サイト設定」→「応用設定」を開くと、「PHPバージョン(ドメイン個別)」という欄がある。右の鉛筆マークから、ドメインごとにPHPのバージョンを選べる。(参照:https://support.conoha.jp/w/configphp/)

サーバー全体の設定とは別に、ドメインごとに決められるので、ブログを複数持っている人は1つずつ試せる。

8.3にした理由

PHPのサポート期限

選択肢には8.4や8.5もあった。それでも俺が8.3にしたのは、使っているテーマ(AFFINGER6の最終版)の動作環境がPHP 8.3までだったからだ。

PHP公式のサポート期限はこう。(参照:https://www.php.net/supported-versions.php)

  • 8.2:2026年12月31日まで(もうすぐ終わる)
  • 8.3:2027年12月31日まで
  • 8.4:2028年12月31日まで

8.2を選ぶと2か月でまた上げることになるので、8.3にした。テーマやプラグインが対応しているなら、8.4以上でもいいと思う。

警告が出た:全ページの上にWarning

PHP 8.3にした直後に出た警告(再現図)

PHPを8.3に切り替えて、トップページを開いたら、全ページの一番上にWarningが3行出ていた。

原因は、更新前の古いAFFINGERのコード。PHP 7.4では黙っていた書き方に、PHP 8から警告が出るようになったらしい。しかもログインしていない読者にも見えていて、サーバーのフォルダの場所まで表示されていた。これはさすがにヤバいと思った。

直し方は2つ。

1. 警告を画面に出さない(すぐやる)

ConoHaの同じ画面にある「user.ini編集」に、この1行を足した↓

display_errors = Off

PHP公式のマニュアルにも、display_errorsは「本番環境では使ってはいけない」と書いてある。(参照:https://www.php.net/manual/en/errorfunc.configuration.php)

これで警告は画面から消えた。

2. 原因を直す(あとでやる)

警告を隠すだけじゃ気持ち悪いので、テーマを最新版に上げた。これで警告の原因そのものが消えた。

俺の記録だと、PHPを切り替えてから警告を消すまで約1時間、テーマを上げ終わるまでさらに30分くらいかかった。半分は焦って調べていた時間だ笑 テーマを先に上げていれば、この1時間半はいらなかったと思う。

うまくいかないときの戻し方

うまくいかないときの戻し方
  • 全ページにWarning → user.iniに display_errors = Off、そのあとテーマ・プラグインを更新
  • 「重大なエラー」で真っ白 → ConoHaでPHPを元のバージョンに戻す
  • 管理画面にログインできない → 同じくPHPを戻す。ConoHaの画面から操作できるので、WordPressに入れなくても大丈夫
  • 戻しても直らない → 自動バックアップからWebとデータベースを復元

PHPの切り替えは、ConoHaの画面からいつでも戻せる。焦ったら、まずPHPを戻すのが一番早い。

ちなみに、php2shell騒ぎの日はConoHaの管理画面自体がエラーで開けない時間があった。急いでいるときほど、こういうこともあるので、時間に余裕があるときにやったほうがいい。

まとめ

  • バックアップを確認する
  • WordPress・プラグイン・テーマを先に上げる
  • ConoHaでPHPを切り替えて、全ページを確認する
  • 警告が出たら display_errors = Off で隠して、テーマを更新して直す
  • 困ったらPHPを戻す

俺の場合、一番の失敗は「テーマを後回しにしたこと」だった。テーマもWordPressと同じタイミングで上げておけば、警告に焦ることもなかったと思う。

PHP 8.2を使っている人も、2026年12月31日でサポートが終わるので、年内に8.3以上に上げておくのがいいと思う。

次は、ConoHaの自動バックアップから本当に復元できるのか、試してみたい。

誰かの助けになれば嬉しい。

-仕事