ケーススタディ
サーバー移行後に画面が真っ白?PHPバージョン違いで起こる典型的トラブルと解決手順
CASE
PHPバージョン差によるエラーと移行後に発生しやすい動作不良の原因とは?
サーバー移行後、「画面が真っ白になる」「管理画面に入れない」という相談で最も多いのが PHPバージョンの不一致によるトラブルである。
サーバー移行トラブルの中で、初心者から技術者まで幅広く直面しやすいのが PHPバージョンの違いによる問題です。
とくに WordPressやEC-CUBEなど、PHPベースのCMSを使っているサイトでは、「旧サーバーでは動いていたのに、新しいサーバーに移したら突然エラーが出る」という事態が頻繁に発生します。
これはコードの問題ではなく、サーバー側のPHPのバージョン仕様が違うことが原因であるケースがほとんどです。
この記事では、PHPバージョン差が引き起こす具体的なトラブルをわかりやすく整理し、移行前にどう確認し、どう回避すればよいのかを詳しく紹介します。
PHPバージョンによる代表的なトラブル
サーバー移行をきっかけに起こる、PHPバージョン起因のトラブルの代表的なものを紹介します。
画面が真っ白になる(Fatal error)
PHPの仕様変更や関数廃止によってプログラムが実行できなくなると、真っ白の画面だけが表示されます。
特に気をつけたいのが次のような点です。
- mysql_connect() など旧関数の廃止
- ereg() 系関数の廃止
- クラス構文の非互換
WordPressの場合はテーマやプラグインが古いままだと発生しやすい不具合です。
管理画面に入れなくなる
管理画面だけがエラーになるのは、プラグインの互換性がない、PHPのバージョンが異なることで動かないコードがあることが原因であることが多いです。
WordPressではログイン後に白画面、またはエラー文が出るケースが典型的です。
予約投稿・メール送信など内部処理が動かない
関数仕様の変更やタイムゾーン設定の違いによって、自動処理(cron)が動かなくなることがあります。
画像アップロードがエラーになる
GDライブラリやmbstring設定など、PHP設定の差異が影響するケースです。
参考記事:
サーバーを移行したら動かない?互換性や仕様の違いで起こる不具合を防ぐ方法
PHPバージョン差で起きる不具合の原因
PHPのバージョンが異なることで起きる不具合の原因には、次のようなものが良く挙げられます。
廃止関数(Deprecated → Removed)
PHPはバージョンごとに使えなくなる関数があります。
移行先でその関数が削除されていると即エラーです。
クラスや構文の変更
PHP7以降では OOP(オブジェクト指向)の扱いが変わり、古いテーマ・プラグインが非対応になっていることが多いです。
ライブラリの違い(GD、curl、mbstringなど)
サーバー側に入っている拡張モジュールの有無が違うと画像処理やメール処理が止まることがあります。
PHP設定(php.ini)の差異
「memory_limit」「upload_max_filesize」「max_execution_time」などの設定値が低いと、動作不安定の原因になります。
トラブルを避けるための移行手順
確認すべき内容を交えて、移行の手順を紹介します。
1.移行前に旧サーバーのPHPバージョンを確認
最低限、次のポイントは確認をしておきましょう。
- PHPバージョン
- モジュール(gd, curl, mbstring, zip など)
- memory_limit などの設定値
2. 新サーバーが同じバージョンを選べるか確認
多くのレンタルサーバーでは複数バージョンが選択できます。
移行直後は旧バージョンと揃えるのが安全です。
3.テスト環境で動作検証
本番切り替え前に、次の点について問題がないかテストを行っておきます。
- 表示
- 管理画面
- 画像アップロード
- フォーム送信
- 自動処理(cron)
4. バージョンアップが必要な場合は、段階的に行う
PHP5 → PHP8 のような大きな飛び越えは危険です。
テーマ・プラグインのアップデートも必要になるためです。
テスト環境で検証 → 本番反映 の順が鉄則。
よくある誤解として、新しいバージョンであれば問題がないという思い込みがあります。
新しいバージョンが早くて安全なのは事実ですが、既存のコードが対応していることが前提です。
移行と同時にPHPを一気に上げたことで、表示されなくなったケースはよくあります。
まとめ:PHPバージョンは移行トラブルの隠れた主犯
PHPバージョンの不一致は、サーバー移行トラブルの中で最も多い原因のひとつです。
しかし事前に旧環境のバージョン確認、テスト環境で検証を行い、段階的にバージョンアップを行えば、ほぼすべてのトラブルを防ぐことができるでしょう。
参考記事:
サーバーの老朽化とは?移行を検討すべきサインと注意点
使用するサーバーや契約プランなどにより、手順や必要な作業は異なります。本記事では一般的な内容をご紹介しておりますのでご了承くださいませ。
個別の相談につきましては、お問い合わせからお願いいたします。