PHPのデバッグ

PHPのデバッグといえば、
var_dumpでブラウザー上にデータを表示して、
値を確認しながら、という原始的な方法から、

今では、Xdebugを使うのが、当たりなんですが、
未だに、原始的な方法を使っております。

「学習コストをかけても、見合う収穫がある」

はずなんですが、
どうも新しいことを覚えるのは、億劫になっておりますが、
そんな中、良い方法を見つけました。

***

  1. function error_logで、debug.logに、変数を保存し、
  2. SSHで接続したターミナルで、tailf -f debug.logで監視。

都度都度、error_logを書くのも面倒なので、

function var_dump2($log, $file = 'debug.log') {
	if (DEBUG_MODE === true or $_SESSION['customer']['customer_id'] == 1)
		var_dump($log, $file);
}

本環境でも、ブラウザーに表示されずに、
デバッグ出来るようになりました。

 

-

ECCUBE3 x EFSが遅すぎる

SAMBA上にキャッシュまで置いて、快適に動いているので、
当然、EFSでも動くものだと思っていましたが、

 

キャッシュなしの初回ロードは、20秒とか・・・

ECCUBE3 EFS

11秒とかが、標準的速さです。

遅いのなんのって・・・

 

同じサーバー上では、ECCUBE2.13がEFS上で動いており、
そちらは至って快適なんです。
キャッシュファイルは、ローカルに置いてます。

 

***

ECCUBE3 x EFS x Cloudfrontが、遅すぎて使えなかったを経て、

PHP7は早いということで、Dockerを使い7.xにしてみるも、結果は同じ。

最後には、元々動いているサーバー上のdocker image毎、
こっちに持ってきて、ページを表示させたところ、

「1秒台」

 

nginxが乗り、phpfpmが動く仮想環境で、
全ファイルは、イメージ内にある条件でです。

ローカルファイルだと早いので、

犯人はEFSで確定です!!

 

冗長化のためには、大変重宝していたEFSですが、
時間もないので、Dropboxで冗長化してみることにしました。

 

PS

EFS上のapp や htmlを、1つずつローカルと置き換えて、
テストはしたんですが、格段に速度差が体感出来るほどで、

vendorや、srcなんて、、、

何が原因は、全く不明です。

-