0

数週間前、ライブ サイトの 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();
}
4

1 に答える 1