数週間前、ライブ サイトの RSS フィードが壊れていることに気付きました。死の白い画面が表示されます。それまでは問題なく動作していました。私のサイトの残りの部分は引き続き正常に動作します。さらに、同じコードが開発ボックスで引き続き完全に機能します。
コードの変更は発生していないので、私の Web ホストがサーバーの設定を変更したと推測していますが、どのような設定になっているのかわかりません (そのため、回避策があるかどうか、または Web に問い合わせる必要があるかどうかはわかりません)ホストが何かを変更します)。Prod と Dev の両方で PHP 5.3.8 を実行しています。
その設定が何であるかについて、誰かが私に手がかりを与えることができますか?
応答ヘッダーで確認できた唯一の大きな違いは、私の (動作していない) 運用 RSS フィードに "Accept-Ranges: none" という応答ヘッダーがあることです。
フィードに入力する DB 呼び出しを再確認し、(DB に問題があった場合に備えて) クラス内の静的データに置き換えましたが、違いはありません。
以下の関連する Controller メソッドのコード:
public function articlesAction(){
$format = $this->_request->getParam('format');
//default format to rss if unspecified
$format = in_array($format, array('rss','atom')) ? $format : 'rss';
$articles = new Application_Model_DbTable_Articles();
$rows = $articles->getLatestArticlesForFeed();
$channel = array(
'title' => 'Feed of articles',
'link' => 'http://www.mysite.co.uk',
'description' => 'The latest articles and reviews from my site',
'author' => 'My name',
'language' => 'en',
'ttl' => '60',
'copyright' => '© the writers of the articles',
'charset' => 'utf-8',
'entries' => array()
);
foreach ($rows as $item) {
$articlelink = 'http://www.mysite.co.uk/articles/' . $item['stub'];
$formattedlink = '<p><strong>Source: <a href="'.$articlelink.'">'.$articlelink.'</a></strong></p>';
$channel['entries'][] = array(
'title' => $item['title'],
'link' => $articlelink,
'guid' => $articlelink,
'description' => $formattedlink . $item['content'] . '<p>© ' . $item['byline'] . ', ' . $item['copyright'] . '</p>' ,
'lastUpdate' => strtotime($item['date_published'])
);
}
$feed = Zend_Feed::importArray($channel, $format);
$feed->__wakeup();
}
$feed->send();
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout()->disableLayout();
}