2015-10-26

phpで画面が真っ白になる場合のいろいろ


phpでプログラムを開発したり、使ったりしていると、画面が真っ白になることが多々有ります。
その主だった要因を列挙します。

  1. Diskの空き容量が無くなった
  2. DBにアクセスできなくなった
  3. 何かの理由でキャッシュディレクトリが更新できなくなった。主に設定変更やファイルを上書きした場合などに発生する。templates_cディレクトリへの書き込み権限がない。cacheディレクトリへの書き込み権限がない。
  4. XMLのDOCTYPE宣言がPHPとして扱われてエラーになる。php_value short_open_tag "On" など、ショートオープンタグがOnになっていると発生する。<?xml version=”1.0″ encoding=”UTF-8″?><?をphpの開始宣言として処理してしまうため。
  5. <?php ~ ?> の外側に改行や空白文字、BOMがある。Windowsのテキストエディタで編集して保存したときに、文字コードでBOM付きで保存してしまった場合などに発生する。全角スペースなども危ない。
  6. phpで内部エラーが発生している。が、表示されていない。php.iniでエラーを表示しない設定にしている場合、エラーメッセージが表示されずに画面が真っ白になる。php.iniか、.htaccess に1行 php_flag display_errors on を追加してApacheを再起動することでエラーが表示されるようになる。
  7. メモリ不足。phpに割当てられているメモリが不足して処理ができない状態。処理ができないので何も表示されない。php_value memory_limit 128M など、現在設定されているメモリサイズから増やしてApacheを再起動してみる。
  8. 文字コードの設定ミス
それぞれ、デバッグする際に確認してつぶしていくリストとして使っているので、ご参考、デバッグのお供としてどうぞ。

※こんなこともリストアップしておいたほうが良いってのがあったら是非教えて下さい!

見ている画面の環境(開発や本番など)を識別してくれるツール

ウェブの開発をしていると、ローカルの開発環境、本番前にテストするステージング環境、本番環境など数種類の環境をいったりきたりして作業することって多いですよね。
そして作業していると「あっ、この画面違う環境だったー」ってこともよくあります。
そんな時にこのChromeエクステンションを使うと環境の確認を視覚的に助けてくて便利なので紹介します。
https://chrome.google.com/webstore/detail/envflag/gepeheajhmnbljihadnmbdgljaemcdhl
Envflag
使い方は簡単です。
このようにしておけばエクステンションの色でいまどの環境の画面を見ているかを識別させてくれます。
Example
prod www.example.com
stage stag.example.com
dev dev.example.com

# comments...
prod www.foobar.com
stage www.foobar.com/stag
dev www.foobar.com/dev
開発しているのは Craftsman Software, Inc. の開発者 Hidehito Nozawa さんです。これって便利です!ありがとうございます!