さくらのレンタルサーバーでWordPressのデバッグモードを有効にして出力した文字が文字化けした時になおす方法

WordPressでWebサイトを運営している方で「ページが真っ白になって表示されなくなっちゃった。復旧対応してほしい」というような相談が月に数件あります。

最近もそんな相談がいくつかあったのですが、WordPressで「ページが真っ白になって表示されなくなった」場合は、様々な角度から原因調査をします。

いくつかある調査作業の中で「真っ白になっているページで、現在どんなエラーが起こっているのか確認したい」ということがあります。

確認する方法はいくつかありますが「WordPressのデバッグモードを有効にして、真っ白になっているページを見る」とエラー内容が表示されることがあります。エラー内容から原因をたどっていく、みたいな。

で、さくらのレンタルサーバーで上記のような確認をすると、私が相談を受けたすべてのケースでエラー内容が文字化けしていました。(PHPのバージョンはすべて5.6.0未満でした)

というわけで、この文字化けをなおす方法を書きましたので、似たようなことでお困りの方はご参考ください。

前提として、まずはWordPressのデバッグモードを有効にします。

WordPressのデバッグモードを有効にする方法

WordPressをインストールしたフォルダ内に「wp-config.php」というファイルがあるので、テキストエディターで開いて、以下の記述がある場所を探します。

デバッグモードの設定を確認しよう

// 無効
define('WP_DEBUG', false);

デフォルトでは、デバッグモードは上記のように無効になっています。以下のように書いて有効にしましょう。

デバッグモードを有効にする

// 有効
define('WP_DEBUG', true);

デバッグモードを有効にする前に気をつけること

デバッグモードを有効にすると、内容によっては「どのファイルのどの行数でどんなコードを書いててエラーが出ているのか」などが表示されます。

なので、WordPressをインストールしたフォルダまでのパス・ファイル名・コードの一部などが見えることがあります。

もし、WordPressをインストールしたフォルダまでのパスやコードの一部からログイン情報やパスワードなどが連想・推測できる文字列を利用していたとしたら、不特定多数の方に見てもらわない方が良さそうですね。

そういった観点から「できるだけ見せる必要のない情報は見せないほうがいい」と私は思っています。

一旦WordPressをメンテナンスモードなどにしたり、関係者のみ閲覧できるように「閲覧制限」をかけてからデバッグモードを有効にしたほうがいいです。

というわけで、デバッグモードの設定が済んだら準備完了です。

ここからが本題です。文字化けをなおします。

さくらのレンタルサーバーでWordPressのデバッグモードを有効にして出力した文字の文字化けをなおす方法

さくらインターネットサーバコントロールパネル」にアクセスします。

ドメイン名、パスワードを入力して「送信する」を押してログインします。

ログイン後「アプリケーション設定」の項目の中から「PHP設定の編集」を選択します。

下の画像のように「php.ini設定ファイル編集画面」が表示されます。

php.iniファイルパス内に設定を書き込めますので、文字コードをUTF-8に設定するコードを書きます。

文字コードをUTF-8に設定する

default_charset = UTF-8

上記のコードを入力して「保存」ボタンを押します。

以上で設定完了です。何か特別なことをしていなければ、これで文字化けがなおります。

default_charsetはバージョンによって設定値が違います

ところで、PHP設定ファイルに書いたdefault_charsetですが、PHPのバージョンによってデフォルトの設定値が違います。

PHPバージョン 設定値(デフォルト)
5.6.0未満
5.6.0以上 UTF-8

default_charsetの値は設定しておこう

PHPのマニュアルにも書いてありますが、default_charsetに空文字列を指定することは推奨されていないので、さくらのレンタルサーバーでPHP5.6.0未満を利用している方は、あらかじめdefault_charsetの値は設定しておいた方がいいとは思います。

冒頭にも書きましたが、私が今回相談いただいたケースはすべてPHPのバージョンが5.6.0未満で設定値が空になっていましたので「文字化けを起こしてしまった」ということが考えられます。

PHPのバージョンを最新の安定版に変更することも検討しよう

今回のような「ページが真っ白になって表示されなくなった」という相談をいただいて原因調査をしていく過程の中で、いろんなものが見つかります。

例えば「PHPのバージョンが古い」とか「WordPressの本体・テーマ・プラグインの更新作業が行われていない」などです。

できれば、PHPは最新の安定版に変更することを検討されたほうがいいです。ただし、以下に書いたことを注意しましょう。

「メンテナンス作業は必要」という認識を持つ

WordPressの本体・テーマ・プラグインはPHPで動作します。PHPのバージョンを最新の安定版に上げることによって、使用しているWordPressの本体・テーマ・プラグインが対応できておらず「ページが真っ白になって表示されなくなる」場合があります。実際にそうなってしまって困っているという相談を受けることもあります。

ですので「WordPressの本体・テーマ・プラグインの見直し、つまり更新作業」が必要になってきます。WordPressの本体のバージョンアップをはじめ、テーマ・プラグインで非推奨となっているコードの書き方を変更する(更新の適用なども含む)、場合によっては代替えとなるテーマ・プラグインを選定する、などの作業が発生します。

上記のような作業は、WordPressを安全に利用し続けていく「メンテナンス作業」だと理解をしていただき、必須の作業だと覚えておいてもいいと私は考えています。

もし「自分でメンテナンス作業をするのは知識がいるし手間もかかるし、大変だ・・・」という方は、できる方に依頼をするのも一つの方法ではないかと思います。つまり「わかる人にやってもらったほうが確実」ということですね。

まとめ

文字化けをなおす方法を書いたのですが、ちょっと派生させて「PHPのバージョンを最新の安定版に上げる」「WordPressの本体・テーマ・プラグインの更新もした方がいいよ。メンテナンス作業は要るよ」ということも書きました。

このページのどこか一部分でも、ご参考となる箇所がありましたら幸いです。

著者:bouya Imamura