0

我们正在开发一个基于 Codeigniter 2 的项目。在我们将 Apache httpd 从 2.2.21 更新到 2.2.24 之前,一切都运行良好。PHP 版本还是一样的(5.3.25)。

对于构建视图,我们使用来自 Phil Sturgeon 的模板库

控制器函数可能如下所示:

public function index(){
    if($this->_is_logged && $this->_is_super){
        redirect('/start', 'refresh');
    }else{
        $this->template
            ->set_partial('page_header', 'web/template/page_header',$this->data)
            ->set_partial('page_footer', 'web/template/page_footer')
            ->set_partial('page_notifications', 'web/template/notification_view',$this->data)
            ->set_layout('minimum')
            ->build('start/authenticate_view');
    }
}

更新后,这会导致500 Internal server error ... 但是,在这样的语句echo之前添加时:if

public function index(){
    echo $this->_is_logged.' '.$this->_is_super.' -- test --'.$this->data;
    if($this->_is_logged && $this->_is_super){
        redirect('/start', 'refresh');
    }else{
        $this->template
            ->set_partial('page_header', 'web/template/page_header',$this->data)
            ->set_partial('page_footer', 'web/template/page_footer')
            ->set_partial('page_notifications', 'web/template/notification_view',$this->data)
            ->set_layout('minimum')
            ->build('start/authenticate_view');
    }
}

echo页面将使用页面顶部的值按应有的方式构建。

我们已经将 Apache httpd 降级到 2.2.21,并且一切都再次正常工作,无需更改任何代码。所以我们确信它与 Apache 版本有关。也许它与模板库中使用的代码有关,或者其他一些奇怪的东西......?

我们正靠在这个墙上。

有没有人有同样的问题,知道问题可能是什么,......你将永远是我们的英雄:)

附加信息:

  • 我们将 DataMapper ORM 用于 CI 模型
  • cPanel 版本:11.36.1(内部版本 6)
  • 操作系统 Linux
4

2 回答 2

2

500 错误应该在您的错误日志中记录一个错误,除非您将其设置为不。尝试将 htacess 文件放在根目录中,例如:

php_value log_errors 1
php_value error_log /var/www/.....php-error.log

然后复制错误并查看输出到日志的内容。正如您所说,这与与 apache 的一些冲突有关,但 500 错误太笼统而无法解决。

于 2013-06-06T16:42:50.773 回答
0

我们发现了问题。我们在项目的早期使用了一个被遗忘的来在 FirePhp 中记录消息和数据。
删除这个文件并在我们的基本控制器中调用他的一个函数解决了内部服务器错误。

于 2013-06-07T09:41:40.170 回答