ロリポップでは、.htaccessにphp_flag display_errors offなど書いても反映されません。php.ini設定の優先度が高いからです。.htaccessを優先させる設定方法と、もっと簡単なエラーコードの表示・非表示の設定方法を書いてます。
またWordPressのphpエラーでブログが表示されず、真っ白画面の上部にエラーコードを表示されてる状態では、レンタルサーバーのアカウントが丸見えになってる状態=パスワードを総当りされたら、不正侵入の可能性があがってしまいます。
エラーコードの表示・非表示にする設定をしようと『.htaccess』にコードをどうすれば反映できるか、その設定方法と手順を説明しますね。
エラーの内容やエラーの直しかた全般は下記を参考に^^
LINKHTTP500内部サーバーエラー(Internal Server Error)の意味とは?
- カッコ【 ) 】の閉じ忘れ
- セミコロン【 ; 】を忘れてる
- スペースが入ってるなどは下記をどうぞ
phpのエラーコード、2種類の表示、非表示設定方法
.htaccess(ドット エイチ ティ アクセス)にエラーコードを非表示にするphp_flag display_errors offを書いても、「PHPエラーの非表示」が有効になりません。php.iniの設定が表示される設定になってるからです。
.htaccessにphp設定を書いたものを表示させる設定のほうが便利だと感じるあなたに設定方法を書きますね。下記はエラーコードを非表示にするコード。
php.ini設定エラーコードの表示、非表示設定
エラーコード表示・非表示の設定は、php.iniのdisplay errorsをonで表示、offで非表示に変更できます。
- エックスサーバー・ヘテムルの場合は以下リンク先でご確認ください。
WordPress初心者でも、真っ白になった画面を復元!エラーコードを表示させる2つの方法
ロリポップのphp.iniのの場所を画像で説明しますね。
ロリポップにログインして『サーバーの管理・設定』より『PHP設定』をクリック。
該当ブログの設定から入り、画面を下へスクロールして「■そのほか」より
- display errorsの設定をonからoffに変更
- エラーコードが非表示(offから、onに変更は表示)
- php.iniの設定を完了!
これでエラーが出た時、ブラウザに映る個人情報込みのphpエラーを非表示に出来ます。2分もかからず、オンオフの切り替え完了は5分少々で変更可能です♪
それでもダメな場合、wp-config.phpでデバッグモードtureに
wp-config.phpでデバッグモード(エラーコードを表示するコード)をチョコッと書き換えます。
サーバー上にあるファイルマネージャ(ロリポップFTP)から編集すれば、比較的簡単に編集を完了できますよ。
デバッグモード、false
からtrue
に変更
- エラーコードを表示するコード
define('WP_DEBUG', true);
- エラーコードを非表示にするコード
define('WP_DEBUG', false);
編集が終われば、元に戻せばOK!
- wp-config.phpの場所や編集時の注意点について
以下リンクさきにある、見出しにて
見出し3章:『wp-config.phpのファイルの扱い注意点と変更方法』と3章の1.wp-config.phpまでのパス
define(‘WP_DEBUG’, false);の記載がない場合、追記する場所
- wp-config.phpをひらいて、
define('WP_DEBUG',
を探してもどこにもその記載がない - どこに書いたら良いか、わからない初心者さんに
ファイルのずっと下にある以下『コメントの上』に追記すればOK!
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ /** Absolute path to the WordPress directory. */
こんな感じで追記できていればOK!
/* エラーコードの表示は true 、非表示は false */ define('WP_DEBUG', false); /* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ /** Absolute path to the WordPress directory. */
編集保存後は、元に戻してください。ロリポップの場合、パーミッションが元々400でしたよね。そちらも最後に元に戻しておく❦
php.iniでエラーコードを表示・非表示にするならwww.独自ドメインも同じ設定に
php.ini設定は、独自ドメインとwww.独自ドメインの両方とも設定をしなければonまたは、Offを入れておかないとエラーが出たとき画面上に、エラーコードが表示されてしまいます。
ロリポップで聞いた事。(ロリポップの仕様かも)
ロリポップの担当さんより引用
「display errorsは、www.
独自ドメインの方にもOffを入れとかないと、
PHPエラーでた時、ブラウザに表示されてしまうって事でしょうか?」については
お客様が仰るようにエラーがでるということです。引用元:ロリポップのお問い合わせ担当さんより
エラーの時「サーバーFTPログイン名」を表示させたくないなら、一括でブラウザにエラー表示させない設定がオススメ。エラーコードを見たら、どこかにコピペ保存して、消してエラー箇所を探すほうが安全です。
ロリポップ.htaccessの内容が反映されないときの設定方法
php.ini設定内容が原因なので、php_value, php_flagをOffからOnに変更すれば良いだけ。これをOnにすれば.htaccessで書いた内容が反映するようになります。Offにしていると、php.ini設定が優先して反映されるってことですね。
- php_value, php_flagをOffからOnに変更する
- php.iniの設定を完了させる。
これで「.htaccess」内に書いたコード「php_flag display_errors off」が有効になり、PHPの内部エラーが発生したときエラーメッセージがでなくなります。
ロリポップなど一部のサーバーで有効な記載です。
エックスサーバーでこの記載をすれば即エラーが出るので注意!
※デフォルトの設定は、【php_value, php_flagを利用可能にする:Off】 は『.htaccess』に「phpエラーコード出さないで」ってコード入力した所で、有効にならない設定が初期設定です。
phpエラーを出すと画面上にエラーコードと、サーバーアカウントが表示される
phpエラーを起こしてブログが真っ白になったときに画面の上にエラーコードが表示されます。これは、どのphpの何行目かわかるので凄く便利な機能があります。反面、サーバーログイン時のユーザー名アカウントまで表示されちゃうんですよっ。
ロリポップでは、画面が真っ白になる「phpのエラー」が出たときデフォルトでエラーコードが表示されます。例えば、functions.phpエラーで表示されるエラーコードは下記。
Parse error: syntax error, unexpected $end in /hoge/hoges/数字/★見られたくないサーバーアカウント★/geho/ドメイン(bibabosi-rizumu.com)/wp-content/themes/stinger5テーマのバージョン/functions.php on line 276
ここで、見られたくないものって、サーバーアカウントなんですよねっ。初心者には、何のことかわかりませんよね。
サーバーアカウントは、ログインの時のユーザー名サーバーアカウントです。そこは知られたくないって、思いませんか?それを、見越してくれた「まろろんさん」のメッセージです♪
@kautakku @abc_no かうたっくさんへ、愛を込めて^ ^ 【まろろぐ】新規投稿🔜[WordPress]PHPのエラーをブラウザに出力しないようにするには http://t.co/CEvIPrIMuE アイキャッチ画像がカウンタックでなくてごめんw — さかのうえのまろ (@sakanoueno_maro) 2015, 5月 31
[WordPress]PHPのエラーをブラウザに出力しないコード
サーバー上の物理パス(フォルダ名)が見えてしまっていること。よくあるのがFTPのユーザー名がパスの中に入っていることがあって、全世界の攻撃者にあなたのブログのサーバーのFTPアカウント名を公表していることになってしまいます。
~中略~
- 「.htaccess」または「htaccess.txt」に次の1行を追加します。
php_flag display_errors off引用元:PHPのエラーをブラウザに出力しないようにするには[WordPress]:さかのうえのまろさんより
詳しく知りたい方は、まろろんさんのページへどうぞっ♪
ブラウザにエラーコードが出ると、アカウントまで表示され、まろろんさんの言う “全世界の攻撃者にあなたのブログのサーバーのFTPアカウント名を公表” されてるってワケです。
※サーバーによって、このコードを書くとエラーがでますが、ロリポップではでません。
LINK500 Internal Server Error・404 File Not Found!サーバー移行・WordPressファイルの入れ替えでエラー・原因と解決方法.htaccess編
さいごに
エラーが起きてから、バックアップとっておけば良かったぁって、後の祭りです。バックアップをとっておく事と、事なきを得ます♪
サーバーよっては初期設定で、php.iniの設定で.htaccessに書いたモノが反映されないよう設定されてます。設定次第で便利ですね。カスタマイズで失敗すると、エラーコードだけでなく、サーバーアカウントが表示されます。
そもそも、エラーログを保存すれば良いんですがね^^;
それでは、かうたっくでした。
Comments