最近まで問題なく動作していたアプリケーション (CakePHP 2.2) がありますが、突然、ページの一部しか配信しなくなりました。ページの HTML は切り捨てられますが、毎回まったく同じ場所で切り捨てられるとは限りません (ほぼ同じ場所ですが)。
他の人に別の場所からこれをテストしてもらいましたが、彼らも同じ問題を経験しました。
この問題が初めて発生したとき、サーバーを再起動したところ、問題が解決したように見えましたが、再び発生しました。今回は、サーバー全体ではなく Apache を再起動しようとしましたが、問題は解決していないようです。
他に何を試すべきかわからないので、どんな提案も歓迎します。
前もって感謝します。
更新:APCを無効にしようとしましたが、これを無効にした後も問題は続きました。
別の更新:切り捨てられたポイントの上下にコンテンツを追加しようとしたところ、ファイルの末尾から特定の距離で切り捨てられているように見えます。これは、おおよそのブレーク ポイントは、コンテンツが壊れている場所の後に追加されたときにのみ移動するためです。
さらに別の更新...OK、さらに掘り下げましたが、実稼働サーバーでのコンテンツの長さの計算に問題があるようです。これが私の掘り下げからの出力です(スペースを節約するために日付ヘッダーが削除されています)...
Content-Length が設定されていないサーバー
Content-Length
CakeResponse::_setContentLength() でヘッダーの設定を解除すると、ページ全体が正常に表示され、これがヘッダーとして返されます…</p
>
Connection close
Server Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips mod_bwlimited/1.4
Transfer-Encoding chunked
X-Powered-By PHP/5.3.24
Content-Length が設定されたサーバー
ヘッダーを設定解除しないとContent-Length
、表示されるページが切り詰められ、応答ヘッダーが…</p>
Connection close
Content-Length 2455
Content-Type text/html; charset=UTF-8
Server Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips mod_bwlimited/1.4
X-Powered-By PHP/5.3.24
標準コンテンツ長のローカル マシン
私のローカルマシンでは、ヘッダーの設定を解除しなくても、実稼働サーバーと同じであるContent-Length
にもかかわらず、ページ全体が表示されるという事実を除けば、ヘッダーの長さの計算だと思います...Content-Length
Connection Keep-Alive
Content-Length 2455
Content-Type text/html; charset=UTF-8
Keep-Alive timeout=5, max=100
Server Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch mod_ssl/2.2.22 OpenSSL/0.9.8x
X-Powered-By PHP/5.3.15