0

几周前,我注意到我的实时网站上的 RSS 提要坏了——我得到了一个白屏死机。在那之前它工作得很好。我网站的其余部分继续正常工作。此外,相同的代码继续在我的开发盒上完美运行。

没有发生代码更改,所以我猜我的网络主机已经更改了服务器设置 - 但我不知道设置可能是什么(所以我不知道是否有解决方法或者我是否需要询问我的网站主机改变一些东西)。Prod 和 Dev 都运行 PHP 5.3.8。

谁能给我一个关于该设置可能是什么的线索?

我可以在响应标头中看到的唯一主要区别是我的(非工作)生产 RSS 提要具有此响应标头:“接受范围:无”。

我已经仔细检查了填充提要的 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

0

我浪费了一个小时来弄清楚为什么我有一个 WSOD 只是因为我用一个小写字母开始了一个课程......

$table = new Model_DbTable_EshopSubcategories(); 代替

$table = new Model_DbTable_EshopSubCategories();

开发服务器不必区分大小写,生产服务器可以。

于 2015-02-25T00:33:09.237 回答