我在我的網站上遇到500內部服務器錯誤。錯誤日誌在我的Joomla應用程序中顯示以下錯誤:「腳本標題的提前結束:cgi_wrapper」。PHP/Joomla「腳本標題提前結束:cgi_wrapper」
它只會在加載一個特定文件時發生。應用程序/網站的其餘部分按其應有的方式工作。沒有其他相關問題顯示在錯誤日誌中 - 沒有顯示超時或權限錯誤的跡象。
導致錯誤的文件是模板/佈局文件。此外,我已經確定了一段會導致錯誤的代碼,當這個代碼被註釋掉時,該網站加載得很好。那就是:
if($question->type == '1' || $question->type == '2' || $question->type == '3')
{
//shuffle items
$shuffled_items = $this->shuffle_assoc($items);
$output = '';
$output .= '<table class="answer-table">';
$output .= '<tr>';
$output .= '<td>';
$output .= '<ul class="answers">';
foreach($shuffled_items as $item)
{
$output .= '<li num=' . $item->num . '>';
$output .= $item->item;
$output .= '</li>';
}
$output .= '</ul>';
$output .= '</td>';
$output .= '</tr>';
$output .= '</table>';
$output .= '<table class="answer-table correct-answer" style="display: none">';
$output .= '<tr>';
$output .= '<td>';
$output .= '<p class="question-instructions">Correct Answer:</p>';
$output .= '<ul class="answers correct-answer">';
foreach($items as $item)
{
$output .= '<li num=' . $item->num . '>';
$output .= $item->item;
$output .= '</li>';
}
$output .= '</ul>';
$output .= '</td>';
$output .= '</table>';
echo $output;
}
它使用一個變量$的問題,那就是在view.html.php文件(對於那些誰知道的Joomla)設置。正是這個變量似乎觸發了錯誤。如果我不指定$ questions變量,那麼模板將會加載得很好。
另外,在上面的例子中,它首先測試問題類型($ question-> type)。如果$ question-> type不是1,2或3,還有其他代碼段會被觸發,並且仍然會產生錯誤。但爲了簡潔起見,我省略了其他代碼,因爲它只在存在相關的問題類型。單獨運行上面的代碼時,會導致錯誤。
所以,我迷路了。讓我感到困惑的是,只有這個模板文件和$ questions變量會導致錯誤。其他一切正常。它也可以在我的本地服務器上正常運行。
差點忘了,使用Joomla 1.5.22,PHP 5.3.3,Apache 2.2.3,Cent OS 5.8。該服務器還運行Parallels Plesk Panel 10.
我希望有人能指點我一個解決方案。
謝謝!
的問題已經得到了解決,即使我不知道什麼 問題是。該腳本導致服務器上出現分段錯誤。基本上,我們切換到沒有Plesk的新服務器,它工作得很好。我不確定plesk是否是問題,或者VPS是否已被破壞。我很想知道這件事的原因,但不幸的是我沒有時間弄清楚。 – Ron