PHP5からPHP7への移行で、ちょっとハマり

市川市にもランニングにも関係ない、ブログのお話です。

PHP5から7に変更しようとしたが、…

このブログは、WordPress上で書いています。WordpressはPHPという言語がベースになっています。
PHPは、2015年の冬にメジャーバージョンアップして、PHP5からPHP7になりました。

PHP7は、かなりの高速化が実現されているということです。
PHP7が出て、既に1年以上経っていますので、すっかり安定しているでしょう。
思いついて、PHP5から7にバージョンアップしました。

WordPressの管理画面が真っ白!

私は、さくらインターネットのレンタルサーバーを使っています。
さくらインターネットは、管理画面からワンクリックでPHPのバージョンが切り替えられます。さっそくPHP7に切り替えました。

ブログのページを開くと、。。。あれ?真っ白。

慌ててWordpressの管理画面を開こうとすると、こちらも真っ白。焦りました。

WordPressのバージョンは4.7なので、PHP7に対応しているはずです。

ということは、自作部分に問題が有るはずです。

原因を調査すると…

エラーメッセージが全く出ず、画面が白紙になってしまうので、手がかりがあまりありません。

幸いなことに、PHP5とPHP7の切り替えは簡単です。
PHP5と7を行ったり来たりしながら、自作のコードをブロック単位で確認していき、どこで真っ白になるかを見ていきます。超原始的なデバッグです。

この間、他からアクセスが来ると「真っ白」になっていたと思いますが、アクセス数が少ないので影響が有りません(笑)

ループ脱出でないbreakでエラーになっていた(PHP5では、ぎりぎり?セーフ)

なんとか、原因がが特定できました。
自作のPHPコードで、breakを、return代わりに使っていました。
本来、breakはループからの脱出で使うのですが、普通に関数を終了させるのに使っていました。
PHP5では大目に見てもらえたようですが、PHP7では厳格にダメ!になったようです。

7年もののバグ

このコードは、大会参加予定と参加記録をCSVから取ってきて表示するために作りました。
以前に「群馬でジョギング、ランニング」というブログでMovable Typeを使っていたときに書いたコードを、Wordpressでも流用したのでした。もう、7,8年もののバグですね。

以前使っていたMovable Type側も修正が必要だが…

これでOK!と思ったら、Movable Typeの方がInternal Server Errorに。そりゃそうですよね、同じコードを使っているのだから。
原因は同じなので治そう!と思ってMTのコンソールに久しぶりにログインしたら、MT5は既にセキュリティアップデートが終了していて、早急にMT6にアップグレードしろ、とのこと…

Movable TypeはMT6にアップデートが必要だった

MT5をMT6にアップデートするかなあ。または、もう更新しないのであれば、MTのCGIを全部止めてしまうかなあ。
(MTは、Wordpressと違って静的ページなので、CGIを止めても問題ないはずです)

結局、PHP5のままにしました…

しばらくは、PHP5のままで我慢します。まあ、PHP7の高速性が活かせるほど記事を書いてないし、問題ないでしょう。

というわけで、雨で走れない週末(走ってもいいのですが(笑))に、久しぶりにサーバーと戯れた結果、何も変わらず、でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

●他の方のブログもどうぞ!↓
にほんブログ村 地域生活(街) 関東ブログ 市川情報へ にほんブログ村 その他スポーツブログ 超ウルトラ・ウルトラマラソンへ