2012-10-29 PHPではまった3つの罠 PHP 発端 ラジオ番組のタイムテーブルを作るのが面倒だったんですよ (かけつけ一杯)とりあえずphpで(作るか) どうしてこうなった(イマココ) 1. memcachedにでかいArrayをserializeして突っ込んだらphpが止まる 結論 データ容量オーバーでした 傾向と対策 でかいArrayを生成するのに数分かかっていたのでmemcachedに突っ込む方針が仇となる なぜファイルにしなかったのか悔やまれる php側でエラー拾えないのかしら memcached-toolで本当にデータ入ってる?と見つつやるのがよさそう 2. ブラウザからphpファイルにアクセスしたら結果が途中で止まる 結論 memory_limitに引っかかっていた 傾向と対策 memory_limitを増やしたら実行できた http://www.php.net/manual/ja/ini.core.php#ini.memory-limit 3. ブラウザからphpファイルにアクセスしたら結果が途中で止まる 結論 max_execution_timeに引っかかってた 傾向と対策 ブラウザで デフォルト状態でコマンドラインから$ php file.phpとする分には時間無制限 http://www.php.net/manual/ja/info.configuration.php#ini.max-execution-time 結論 memory_limit上限引っかかるのは、phpのバッチでよく引っかかったなぁと思い出しました(遠い目 ログは重要 phpの確保しているメモリが足りないよとかmemcachedサイズオーバーだよってどこでどうやって取得するんですかね メモリをあとこれだけ確保しようとしたけど確保できなかったエラーなら某所でみたことあるけど 開発環境と本番環境で切り分けられると良いですね(白目 結論の結論 メモリ、実行時間ともに、サーバに優しくエコなプログラミングをしましょう bashサイコー Σ