Joomla サイトの構築を手伝っています (Joomla 1.5.26 を使用)。ページの 1 つが本当に大きいです。その結果、PHP はエラーなしで動作を停止し、以前に出力された文字列はすべて無視されます。出力はまったくありません。display_errors を TRUE に設定し、error_reporting を E_ALL に設定しています。
PHPが壊れる正確な行を見つけました。それは libraries/joomla/application/component/view.php:196 にあります
function display($tpl = null)
{
$result = $this->loadTemplate($tpl);
if (JError::isError($result)) {
return $result;
}
echo $result;
}
いくつかの情報:
- echo $result; を置き換えます。echo strlen($result); を使用 動作します。文字列の長さは 257759 です。
- echo substr($結果, 0, 103396); 部分的なコンテンツを印刷しています。
- echo substr($結果, 0, 103397); まったく出力されません。
- echo substr($result, 0, 103396) . "あ"; まったく出力されません。したがって、文字列をチャンクに分割することは解決策ではありません。
スクリプトの実行中にサーバーのパフォーマンスを確認しました。CPU 使用率は 100% ですが、メモリは十分に残っています。PHP のメモリ制限は 1024M です。output_buffering は 4096 ですが、不当に高い数値に設定してみました - まったく同じ位置で死にます。サーバーは Apache 2.2.14-5ubuntu8.10 および PHP 5.3.2-1ubuntu4.18 を実行します。PHP は fast_cgi モジュールとして実行されます。
私はそのようなことを経験したことがなく、Googleの検索結果も何もありません. このような経験をした方、解決策をご存知の方はいらっしゃいますか? 読んでくれてありがとう!