4

最近まで問題なく動作していたアプリケーション (CakePHP 2.2) がありますが、突然、ページの一部しか配信しなくなりました。ページの HTML は切り捨てられますが、毎回まったく同じ場所で切り捨てられるとは限りません (ほぼ同じ場所ですが)。

他の人に別の場所からこれをテストしてもらいましたが、彼らも同じ問題を経験しました。

この問題が初めて発生したとき、サーバーを再起動したところ、問題が解決したように見えましたが、再び発生しました。今回は、サーバー全体ではなく Apache を再起動しようとしましたが、問題は解決していないようです。

他に何を試すべきかわからないので、どんな提案も歓迎します。

前もって感謝します。

更新:APCを無効にしようとしましたが、これを無効にした後も問題は続きました。

別の更新:切り捨てられたポイントの上下にコンテンツを追加しようとしたところ、ファイルの末尾から特定の距離で切り捨てられているように見えます。これは、おおよそのブレーク ポイントは、コンテンツが壊れている場所の後に追加されたときにのみ移動するためです。

さらに別の更新...OK、さらに掘り下げましたが、実稼働サーバーでのコンテンツの長さの計算に問題があるようです。これが私の掘り下げからの出力です(スペースを節約するために日付ヘッダーが削除されています)...

Content-Length が設定されていないサーバー

Content-LengthCakeResponse::_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
4

1 に答える 1

0

私が収集できるものから、

dieダイコードが表示された後、スクリプトは HTML を実行してから停止する必要があります。

CakePHP のコードをさらに調べて、論理関数が予期せず終了していないこと、および HTML のロードを引き起こす可能性のある未解決の die 関数がないことを確認する必要があります。

于 2013-09-02T08:45:36.917 に答える