最近、Wordpressの管理画面を開くと「PHPの更新が必要です」というメッセージが表示されるようになりました。「安全ではないバージョンのPHPを実行している」らしい。ロリポップの設定画面で確認してみると、いまのPHPバージョンは「5.6(モジュール版)」。「7.1(CGI版)」にバージョンアップできるようです。上げたいところですが、PHPのバージョンが変わると、テーマやプラグインが正しく動かなくなることがあります。ファイルをバックアップするまずはバックアップしましょう。修正を間違ってしまった場合でも、バックアップファイルがあれば安心です。「Webサーバーとデータベースのすべて」をバックアップするのが一番良いですが、ファイル数が非常に多い。最低限、以下のファイルはバックアップしておきたいですね。・テーマ(themesフォルダ以下)・プラグイン(pluginsフォルダ以下)・データベースのエクスポートデータ(念のため)その他、可能な範囲でバックアップしておきましょう。自動でバックアップする場合ロリポップのプランが「エンタープライズ」の場合、自動バックアップ機能が無料で使えます。過去7回分が保存されるので、何かと安心・便利。今回はこの機能を使い、Webサーバのファイルはzipファイルで、DBサーバのデータはgzファイルでダウンロードしました。それぞれ1ファイルなので、扱いが楽ですよ。テーマの最新バージョンと機能を確認する「あまおとろぐ」にある10個のブログでは、「responsive、BlogPress、Chill」の3テーマを使っています。前回バージョンアップしたのは2~3年前。いま使っているバージョンと最新バージョンを調べて見ると、結構変わってました。・responsiveテーマ:v3.5→v3.17.1・BlogPressテーマ:v3.0→v3.1.2・Chillテーマ:v2.1→v2.1.2特に、responsiveのバージョンが大きく変わってますね。バージョンアップ内容を確認するテーマの修正内容を見てみると、PHPに関することも書いてありました。【BlogPress】Ver3.1.1→3.1.2php7環境で発生するエラー解消のための修正と書いてありました。テーマもバージョンアップしておいた方が良さそうです。機能が追加されていないか見ておくテーマによっては、バージョンアップ時に機能追加されている場合もあります。変更できるようになってました。Post」にあります。responsiveテーマをカスタマイズした理由の一つが「記事内のアイキャッチ画像を消す」でした。カスタマイズしなくても、テーマ設定で変更できるようになったのですね。今回、この確認作業を忘れていて、余分なカスタマイズをしてしまいましたよ。テーマをバージョンアップするWordPressのテーマは、管理画面で「更新ボタン」を押すだけで更新できます。このブログでは、テーマ内のPHPファイルやcssファイルを少しカスタマイズしているので、そのまま更新してしまうと、カスタマイズ内容が消えてしまいます。それを防ぐには、手動でバージョンアップする必要があります。以下の手順は、テーマをカスタマイズしている場合だけですよ。カスタマイズしていない場合はスキップしてくださいね。最新テーマのzipファイルを取得する最新テーマのzipファイルを公式サイトからダウンロードします。有料テーマの場合、専用のダウンロードサイトがあると思いますのでそちらから。「BlogPress、Chill」は購入してから4年以上経ちますが、まだアップデート対応してくれているのがありがたい。ブログのテーマは一度使い始めると、大幅なリニューアルなどが無い限り、簡単に変更できるものではありませんので。良い感じにファイルを修正する「これまで使っていたファイル一式(カスタマイズ版)」と「最新のファイル一式(ダウンロード版)」をWinMergeなどのツールで比較しつつ、良い感じにファイルを修正していきます。「これまで使っていたファイル一式(オリジナル版)」と比較するのも良いですね。純粋な変更箇所が分かりますので。修正ミスがあると正しく動作しませんので、十分に注意しましょう。ファイルをアップロードする修正したファイルは、FTPソフトでアップロードします。プラグインをバージョンアップするプラグインもPHP上で動きますので、最新バージョンで使えるか確認が必要です。使っていないプラグインを探すいらないプラグインや最近使っていないプラグインを探します。これを削除してしまえば、そもそも確認する必要が無くなります。今回は、以下のプラグインを削除できそうです。Cacheに置き換え済み)結構あるもんですね。使っていないプラグインを削除するいきなりプラグインを消すの止めましょう。ブログが複数ある場合、「使っていないつもりでも実は使っていた」なんてことがあります。Wordpressのプラグイン設定画面で確認しつつ、問題無ければプラグイン本体を削除します。気を付けておきたいのが、「プラグイン固有の機能をPHPファイルに組み込んでいた」場合です。プラグイン固有のメソッドなどをPHPファイルに実装している場合、そのプラグイン本体が無くなってしまうと、Wordpressが実行された時にエラーになってしまいます。気を付けましょう!プラグインをバージョンアップするテーマと同じように、プラグインを最新版にバージョンアップします。プラグインをカスタマイズしていた場合も、テーマと同じです。新旧のファイルを確認しつつ、良い感じに最新化していきます。更新が止まってるプラグインを置き換えるまだ使っているけど、最近プラグインの更新が止まっているものもあります。数週間~数ヶ月であればまだ良いかも知れませんが、数年更新されていない場合、セキュリティ的に少し心配です。思い切ってそのプラグインを削除してしまうか、同じような機能を持った別プラグインを探しましょう。今回は、以下のプラグインを止めて、別のプラグインに置き換えました。PHPの互角性を確認するここまでの作業で、テーマとプラグインをできるだけ最新版に近づけることができました!もちろん、現在のバージョン(PHP5.6)で正しく動作していることも確認できています。PHPのバージョンを上げたい!ところですが、もう少しやることがあります。Checker」というプラグインがあります。バージョンでの互換性を確認することができますという便利なツール。プラグインの説明欄にも書いてあるように、完璧にチェックしてくれるワケではありません。人間の目で一つ一つ確認するよりは、効率よくチェックしてくれると思いますよ。コードの中身を見てくれる!Webサーバに保存されている「テーマやプラグインのコード(PHPファイル)」をチェックしてくれるのがスゴイですね。バージョンの互換性を確認することができます。ファイルシステムに含まれているテーマやプラグインのコードについて、互換性の問題を改修するためのレポートを作成します。バージョンと互換性が無い理由を記します。互換性がある最新バージョンが提供されている可能性があるため、テーマやプラグインのアップデートを提案します。うまく動かない!プラグインをインストールし、実行してみました。チェック処理は結構時間がかかりますね。数十分後、チェックは無事に完了したようですが、肝心のチェック結果がどこにも表示されません!ボタンの名前が「サイトをスキャン」から「サイトを再スキャン」に変わっただけ。数回試してみましたが結果は同じでした。ボタン名は変わりましたので、実行はされたようなんですが。今度こそ!と思いましたが、もう一つ大事な事がありました。エラーが起きた時のための「ログファイルを出力する」準備です。画面が真っ白になるのは理由がある通常、Wordpressでエラーが発生すると、画面が真っ白になります。「ここのファイルがおかしいです」などのメッセージは表示されません。不親切のように思えますが、これはセキュリティ的に大事なことなんです。WordPressからのプログラム的なメッセージを不用意に表示してしまうと、Webサーバへの攻撃対象となってしまうことがあるからですね。ログファイルに出力しようけど、エラーメッセージが出ないと困ります。そんな時は、画面にエラーメッセージを表示するのではなく、ログファイルに出力します。log)の出力機能というものがついています。これはユーザーがソ...今回はこのサイトを参考にさせて頂きました。いえ、まだログ出力をオンにする必要はありませんよ。PHPのバージョンを上げる!前置きがかなり長くなりましたが、これですべての準備が完了しました。PHP設定」をクリックします。今回は「すべてのドメイン」のプルダウンから「7.1(CGI版)」を選択しました。メッセージ内容を確認して、OKボタンを押します。設定を変更しました!ドキドキしますよ。待つ「設定反映に5~10分ほど時間を要します。」とのことなので、しばらく待ちます。何も問題無ければ良いですが、最悪パターンとしては「すべての画面が真っ白」も考えられますので、何となく落ち着きません。バージョンアップの完了を確認するには、WordPressのダッシュボード画面を見るのが簡単です。バージョンアップ中のようです。(64ビット値をサポートしています)」に変わっていました。バージョンアップ自体は成功したようですね。動作確認するバージョンアップはできましたが、これで終わりではありません。新しいPHP7.1の環境で、WordPressが正しく動作するか確認する必要があります。主な画面を確認していくすべての画面を確認するのは大変ですので、ポイントを絞りましょう。Cacheなどのキャッシュを削除する。・メニューやウィジェットのリンクをクリックしてみる。・テーマの記事検索機能を試してみる。ブログが複数ある場合、すべてのブログで確認しましょう。面倒ですが、ここで確認しておかないと、後が面倒ですので。responsiveテーマでエラーが出た!ブログの確認を進めていきます。思った以上にちゃんと画面が表示できてたので安心していると、「あまろぐ!」の記事画面を表示した時、画面が真っ白になってしまいました。ここであわてないことが大事です。画面は真っ白ですが、Wordpressが壊れたワケではありません。エラーの問題となった箇所を修正すれば、ちゃんと表示される(はず)。原因を探そういろいろ試してみると、すべてのブログでエラーが出るのではなく、「あまろぐ!」で使っている「responsiveテーマ」限定で、トップ画面と一覧画面は正常に表示されました。記事画面だけでエラーが起きているようです。ログの準備」で準備しておいたログ機能をオンにして、真っ白な画面を表示すると、ログが出力されました。ereg_replace関数が原因でした!ログを見てみます。/home/(中略)/themes/responsive/header.php:53「header.php」の53行目で、定義されていない「ereg_replace関数」が呼ばれたようですね。今回は、分かりやすい内容でラッキーでしたよ。実際のファイルを見ると、確かにその関数が使われていました。7.0.0で削除された」ようです。Manualhttps://www.php.net/manual/ja/function.ereg-replace.phpいまのバージョンは7.1.5ですので、動かないのは当たり前。responsiveテーマは最新にしたので、最新のPHPに対応してると思ってたんですけどね。1文字違いの「preg_replace関数」が代わりに使えるらしいので、その関数を使うようにPHPファイルを修正します。新しい関数では「正規表現のパターン文字」にも仕様変更があったようですが、今回使われていた「”(\r\n|\r|\n)”」には影響は無かったようなので、こちらの修正は無し。57行目でも同じ関数を使っていたので、そちらも修正しました。修正したファイルをFTPツールでアップロードし、画面表示してみると、今度は記事画面が表示されました!!無事に修正できましたね。してもダメな場合はバージョンを戻すエラーがうまく直らない場合もあると思います。そんな時は、PHPのバージョンを元に戻すのが良いですね。ロリポップの設定画面で戻せる場合だけですが。戻せたら、真っ白な画面からは解放されたはず。ネットなどで情報を集めつつ、エラーの原因を探りましょう。原因が分かったら再度チャレンジ!まとめロリポップのPHPバージョンを「5.6(モジュール版)」から「7.1(CGI版)」に変更しました。作業内容は「バックアップ、テーマとプラグインのバージョンアップ、PHPの互換性確認、ログの準備、動作確認」など、いろいろありました。1ファイルだけエラーが出ましたが、別の関数に置き換えることで対応できましたよ。コメントをキャンセルメールアドレスが公開されることはありません。インフルエンザで頭がかなり痛い!熱より「頭痛」の方が辛かったですさささん、コメントありがとうございます。インフルエンザで頭がかなり痛い!熱より「頭痛」の方が辛かったですぴこさん、コメントありがとうございます。頭痛で不安になる気持ちは分かります。インフルエンザで頭がかなり痛い!熱より「頭痛」の方が辛かったですインフルエンザA型にかかり3日目の朝を迎えました。インフルエンザで頭がかなり痛い!熱より「頭痛」の方が辛かったですそらさん、コメントありがとうございます。頭痛が酷いのは本当に辛いですね。頭痛にはいろんな原因があ...検索:だーしゅIT関係のお仕事してます。[あまおとろぐ]Top。