先日、mixhostでサイトをいじっているとき画面が真っ白になりました。
「Wordpressサイトで画面が真っ白になる」ケースといえば、大抵の場合はPHPエラーです。
なので「なぜ表示されない?とりあえずWordpressをデバッグモードしてみよう」とwp-config.phpファイルを編集しデバッグモードにしてエラーを表示させようとしました。けれども、デバッグモードにしても画面は真っ白のままでした。
ですので「あれ?PHPのエラーじゃなかったのかな?」と思いmixhostのサポートに症状を説明して相談に乗ってもらいました。
そしたらどうやらmixhostでは、セキュリティー上の観点から、デフォルトでエラーメッセージは出ない設定になっているようです。確かに、エラーメッセージには、ファイルへのパスが含まれていて、その中に、サーバーへのログインIDが含まれている場合もあります。
そういった諸々の理由からエラーメッセージはできるだけパブリックにしないに越したことはありません。
ただ、どうしても原因を探る場合に、エラーメッセージを表示したい場合もあるかと思います。
そんな際には、もちろん表示する方法もあります。
ということで今回は、「mixhostでPHPエラーを表示させる方法」について書きたいと思います。
目次
主な手順
mixhostでWordpressを利用している場合、エラー表示をする手順は以下になります。
- cPanelにログイン
- PHPの設定を変更する
- WordPressをデバッグモードにする
- デバッグ作業が終了した後は設定を元に戻す
mixhostでは、デバッグモードにする前に、PHPオプションを変更する必要があるようです。
先程も書きましたが、エラーメッセージは、セキュリティー上の観点から出来る限りパブリックに表示されない方が無難です。そういった点で言えば、mixhostは「デフォルト状態でセキュリティーを考慮した状態になっている」ともいえます。
実際に僕も普段mixhostを使っているときに、以前使用していたサーバーよりも「セキュリティーにもかなり気を使っているんだなぁ」と感じられる設定を節々で見かけます。
cPanelにログイン
PHP設定の変更は、cPanelから行う必要があります。
まずはcPanelにログインしてください。
cPanelのログイン画面がよくわからない場合は、mixhostのマイページにログインします。
マイページにログインしたら、使用中のサービスを選んで「cPanelにログイン」を選択すればcPanelが表示されます。
PHPの設定を変更する
PHPの設定を変更するには、cPanelの「ソフトウェア」項目にある「Select PHP Version」を選択してください。
「PHP Selector | extensions」画面が表示されるので、「Switch To PHP Options」を選択してください。
「PHP Selector | options」画面が表示されるので「display_errors」項目部分の値をクリックします。
あとは「display_errors」の設定を「On」にして適用ボタンを押してください。
最後に「保存」ボタンを押して設定完了です。
おそらくこの段階で、エラーメッセージが出る場合は、以下のように出るかと思います。
WordPressをデバッグモードにする
もし、上記までの方法で、エラーメッセージが表示されない場合(もしくは通知[notice]メッセージ等も表示させたい場合)は、wp-config.phpをFTPソフトなどで開いて編集します。
ファイルを開いたらデバッグモードに変更します。
/** * 開発者へ: WordPress デバッグモード * * この値を true にすると、開発中に注意 (notice) を表示します。 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。 */ define('WP_DEBUG', true);
一応これで完全にWordpressでデバッグ環境になりました。
以下のように、noticeメッセージも表示されるようになります。
デバッグ作業が終了した後は設定を元に戻す
最後に、不具合や問題が解決した際には、今回行った設定を元に戻して、エラーメッセージを表示しないように戻しておきましょう。
エラーがあったときは、とりあえず画面が真っ白表示される方が、セキュリティー的には安全です。
まとめ
このように、mixhostでPHPエラーメッセージを見たい場合は、必ずPHPオプションを変更して、「display_errors=On」にする必要があります。
最初、以前使用していたエックスサーバーでは必要なかったPHPオプションを変更する必要があり、少し戸惑いましたが、セキュリティー的にはこっちの方が良さそうです。
ということで「mixhostでPHPエラーの表示方法がわからない」とか「mixhostでエラーメッセージ有効、notice表示も有効にしたい」なんて場合があれば、今回の方法を試してみてください。
サイト mixhost