スマイルサーバーのPHP7.4提供終了|”切り替えるだけ”で止まるサイトを、止めずに移行した事例

サーバー会社から、こんなお知らせが届きました。
「PHP7.4の提供を終了します。PHP8へ更新してください」
PHPってなに?更新ってボタンを押せばいいの?
期限まで書いてあって、なんだか焦りますよね。
先に結論をお伝えしますね。

期限を過ぎると、サイトが表示されなくなったり、一部が動かなくなったりすることがあります

WordPressのサイトでも、独自のプログラムで作られたサイトでも起こります

「設定を切り替えるだけ」で済むとは限りません。切り替えた瞬間に、画面が真っ白になることもあります

期限に余裕があるうちに、今のサイトが新しいバージョンで動くか、先に確かめておくのがいちばん安全です
この記事では、お知らせの意味と、なぜ「切り替えるだけ」ではいけないのかをご案内します。
後半では、実際にあった移行の事例をお見せします。
同じお知らせを見て、どうしたらいいか迷っている方の参考になれば嬉しいです。
「PHPの提供終了」は、サイトの土台が変わるというお知らせです

PHPは、ホームページを動かしているプログラムの言葉です。
WordPressも、この言葉で動いています。
言葉には「バージョン」があって、古いバージョンはだんだん使えなくなります。
古いままだと、セキュリティの穴をふさぐ修正が届かなくなるからです。
そこでサーバー会社は、「この日で古いバージョンをやめます。新しいバージョンに移ってください」とお知らせを出します。
これが「PHPの提供終了」のお知らせです。
期限を過ぎると、サーバー会社の判断で新しいバージョンに切り替えられたり、古いバージョンが使えなくなったりします。
そのときサイトの中身が新しいバージョンに対応していないと、表示されなくなってしまうんです。
まず確認しましょう「あなたのサイトは対象?」
お知らせが届いたら、まずは今のサイトがどのバージョンで動いているかを確かめます。
- サーバー会社から届いたお知らせのメールを開いて、対象のバージョンと期限を確認する
- サーバーの管理画面にログインして、今使っているPHPのバージョンを見る
- お知らせに書かれている古いバージョン(今回ならPHP7.4)になっていたら、対象です
スマイルサーバーの場合は、次の手順で確かめられます。
- サイトマネージャーにログインする
- 左側のメニューの「CGI管理」を開く
- 「PHPバージョンの切り替え」を開いて、選ばれているバージョンを見る
ただし、サイトのプログラムの側で別のバージョンを指定していることもあって、管理画面の表示と、実際に動いているバージョンが違う場合があります。
確かめ方が分からないときや、表示を見てもよく分からないときは、制作した会社か、私たちのような専門家に聞いてみてください。
(手順の出典:スマイルサーバ ユーザーサポートサイト)
なぜ「切り替えるだけ」ではいけないの?
新しいバージョンでは、前は見逃してもらえた書き方が、ダメになっていることがあるからです。
たとえるなら、前は「ちょっと字が間違ってるけど、読めるからいいよ」と通してもらえていた書類が、新しいルールでは「間違いがあるので受け付けません」と突き返されるようなものです。
長く使っているサイトほど、こういう「前は通っていた書き方」が残っています。
だから、先に中身を新しいルールに合わせて直してから、最後に切り替えるという順番が大切になります。
古いバージョンのまま書かれた中身で、設定だけを新しいバージョンに切り替える
↓
切り替えた瞬間に、
画面が真っ白になることがある
中身を新しいバージョンでも動くように直して、先に本番へ載せておく
↓
切り替えた瞬間から、
ちゃんと動く
実際にあった事例
古い独自プログラムのサイトを、止めずに移行
ここからは、実際にあった移行の事例をご紹介します。
(お客様が特定されないよう、細かいところは伏せています)
ご相談:「対応できますか?」
ご相談をくださった方のサイトは、レンタルサーバーのスマイルサーバーを使っていました。
そのスマイルサーバーから、「PHP7.4の提供を8月31日で終了します」というお知らせが届いていたんです。

ちなみにこのお知らせは、その後も更新されています。
サーバーのトラブルで一時的にサービスが止まっていた一部のサーバーでは、期限が2026年10月31日まで延長されています(2026年9月25日の更新時点)。
スマイルサーバーをお使いで、まだ対応できていない方も、間に合う可能性があります。ご自身のサーバーが対象かどうかは、お知らせのページで確かめてみてください。
サイトはWordPressではなく、数年前に作られた独自のプログラムで動いていました。
「PHPを更新すれば大丈夫、という理解で合っているのか自信がない」というご相談でした。
この「自信がない」という感覚、とても大切です。
実際、ボタンひとつでは済まないケースでした。
進め方:先に直してから、最後に切り替える
サイトを止めないために、次の順番で進めることにしました。
調べる
サイトのプログラムを全部見て、新しいバージョンで動かなくなりそうな場所を探す
練習用の環境で直す
本番とまったく同じ条件の「練習用のサイト」を用意して、全部のページとお問い合わせフォームを実際に動かしながら直す
直したものを先に本番へ
直したプログラムは古いバージョンでも動くように作ってあるので、先に載せてもサイトは止まらない
最後に切り替える
直したものが載っている状態で、サーバーの設定を新しいバージョンに切り替える
ポイントは3番目です。
直したものを先に載せておくから、切り替えた瞬間から、ちゃんと動くんです。
動かしてみて初めて見つかった「1文字の地雷」

いちばん大きな発見は、2番目の「練習用の環境で直す」ときにありました。
プログラムを読んだ段階では、「直すのは、新しいバージョンでなくなった命令のまわりだけ」に見えていました。
チェック用のツールにかけても、同じ結果でした。
ところが、練習用のサイトで実際に動かしてみたら、まったく別の場所で画面が真っ白になったんです。
原因は、たった1文字の書き間違いでした。
「ここで止まって」という意味の命令が、1文字多く綴られていたんです。
古いバージョンでは「たぶんこういう意味だよね」と見逃してもらえていたので、何年も問題なく動いていました。
でも新しいバージョンでは、そこでエラーになって止まります。
この1文字のせいで、サイトの中心になっている詳細ページが、全部表示されなくなる状態でした。
大切なのは、この地雷はプログラムを読むだけでは見つからなかったということです。
チェック用のツールも見つけられませんでした。
本番と同じ条件で、実際に動かして初めて出てきたんです。
制作者向けメモ(1文字の地雷の中身)
switch文の break; が breack; と綴られていました。PHP7.4では「未定義の定数」として警告で済んで動き続けていましたが、PHP8では未定義の定数はFatal errorになります。PHPCompatibility等の静的チェックでは検出されず、PHP8.3の再現環境(Docker)で実際にリクエストを流して初めて表に出ました。
// 本来の書き方
break;
// 実際に残っていた書き方(1文字多い)
breack;
テストメールが、関係ない外部の会社に届くところだった
お問い合わせフォームの確認でも、ひとつ事故を防げました。
このサイトにはお問い合わせフォームが12本ありました。
テストで送信する前に、それぞれ「送ったメールがどこに届くか」を1本ずつ確認したところ、6本は、サイトの運営者だけでなく、外部の会社にも同時に届く設定になっていたんです。
もし確認せずに12本ぜんぶテスト送信していたら、関係のない外部の6社に、テストメールが届いてしまうところでした。
「ちゃんと送れるか」ばかり気にしていると、「どこに届くか」を見落とします。
送信ボタンを押す前に、届く先を確かめる。これだけで防げる事故です。
切り替え当日:止めずに、いつでも戻せる状態で
本番の切り替えは、次の順番で進めました。
今のファイルをまるごと保存する
切り替え前に、今動いているファイルを全部保存しておく(いつでも元に戻せるように)
直したファイルを先に載せる
この時点ではまだ古いバージョンなので、サイトは止まらない
新しいバージョンに切り替える
サーバーの設定を、新しいバージョンに切り替える
全部をもう一度チェックする
全部のページとお問い合わせフォームを、自動の確認で一気にチェックする
サーバーの管理画面には、一度押すと本番のデータが元に戻せなくなるボタンも並んでいました。
だから作業の最初に「これは押さない」と決めてから進めています。
そして何より、いつでも元に戻せる状態を用意してから触ること。
戻せる安心があるから、落ち着いて本番を触れるんです。
切り替えたあとに起きたこと:自動返信のメールが届かない

移行が終わってしばらくしてから、「お問い合わせをした人に、受け付けましたというメールを自動で送りたい」というご依頼をいただきました。
さっそく自動返信を付けたのですが、Gmailを使っている人にだけ、自動返信が届かないことが分かりました。迷惑メールのフォルダにも入っていません。
原因は、自動返信のメールにだけ、「このメールはどこから送ったものか」を示す情報が付いていなかったことでした。
Gmailは、送り主がはっきりしないメールを「なりすましかも」と判断して、受け取りを断ることがあります。
送り主の情報を正しく付けるよう1か所直して、Gmailにも届くようになりました。
「送れた」と「届いた」は、別のことなんですよね。
メールが絡む作業は、実際に受け取る側で届いたかまで確かめるようにしています。
制作者向けメモ(自動返信がGmailに届かなかった件)
自動返信(mb_send_mail)でエンベロープFrom(Return-Path)を指定していなかったため、SPF・DMARCの整合が取れず、Gmailに受信拒否されていました。同じアドレスからメールソフトで送るとGmailに届いたことで、ドメインの認証設定ではなく送信処理側の問題と切り分けられました。第5引数に -f 送信元アドレス を付けて解消しています。
結果|エラーゼロ、サイトが止まった時間もゼロ
- 主なページ・詳細ページ・お問い合わせフォームまで、全23か所でエラーと警告がゼロ(直す前は、サイトが止まるエラーが2種類と、警告が30件)
- 表示されなくなっていた詳細ページが、正常に表示されるように
- 本番の切り替え中も、サイトが止まった時間はゼロ
- 元に戻す作業の出番もなく完了
- あとから付けた自動返信も、Gmailを含めて届くように
安全は「順番」と「戻せる状態」で作る
PHPのバージョンアップは、見た目が何も変わらない、地味な作業です。
でも、動いているサイトを止めずに移すには、地味な段取りのひとつひとつが効いてきます。
直したものを先に載せて、動くと確かめてから、最後に切り替える。
いつでも元に戻せる状態を用意してから触る。
そして、プログラムを読むだけで判断せず、本番と同じ条件で実際に動かして確かめる。
今回の「1文字の地雷」も、読むだけなら見逃していました。
「調べた」と「動かした」の間には、思っている以上の差があるんです。
お知らせが届いたら、まずはそのメールを転送してください
「うちのサイトもお知らせが来ているけど、何から手をつければいいか分からない」
「制作した会社と連絡が取れなくて、中身が分かる人がいない」
そんなときは、サーバー会社から届いたお知らせのメールを、そのまま転送してください。
期限と対象を確認して、「切り替えるだけで大丈夫そうか」「先に直す必要がありそうか」をお伝えします。
移行をお任せいただく場合は、今回の事例と同じ流れで進めます。
- サイトのプログラムを調べて、新しいバージョンで動かなくなりそうな場所を探す
- 本番と同じ条件の練習用の環境で、全部のページとフォームを実際に動かして直す
- テストメールを送る前に、届く先を1本ずつ確認する
- 今のファイルをまるごと保存してから、本番を触る
- 直したものを先に載せて、最後に切り替える(サイトを止めない)
- 切り替えたあと、全部のページとフォームをもう一度確認する
WordPressのサイトでも、独自のプログラムで作られたサイトでも大丈夫です。
💬 PHPの提供終了のお知らせ、ご相談はお気軽に
こんたホームページ製作所では、PHPのバージョンアップや古いサイトの修繕の単発相談から、月々の保守まで承っております。「お知らせの意味がよく分からない」という段階でも大丈夫です。届いたメールを添えて、お気軽にご相談ください。










