500 внутренних ошибок сервера после обновления Apache httpd до 2.2.24

0 Brainfeeder [2013-06-04 16:34:00]

Мы работаем над проектом, который основывается на Codeigniter 2. Все работали отлично, пока мы не обновили Apache httpd с 2.2.21 до 2.2.24. Версия PHP по-прежнему остается прежней (5.3.25).

Для просмотра зданий мы используем библиотеку Template от 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. Однако при добавлении 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 в верхней части страницы.

Мы allready понизили Apache httpd до 2.2.21, и все работало без изменения кода. Поэтому мы уверены, что это имеет какое-то отношение к версии Apache. Может быть, это связано с кодом, используемым в библиотеке Template, или какой-то странной особенностью...?

Мы бежим к стенам на этом.

Кто-нибудь, у кого была такая же проблема, знает, в чем проблема,... Ты бы наш герой навсегда :)

Дополнительная информация:

  • Мы используем DataMapper ORM для моделей CI
  • cPanel-версия: 11.36.1 (сборка 6)
  • ОС Linux

php apache codeigniter-2 apache2.2


2 ответа


0 Решение Brainfeeder [2013-06-07 12:41:00]

Мы нашли проблему. Была забытая библиотека, которую мы использовали в раннем состоянии проекта для регистрации сообщений и данных в FirePhp.
Удаление этого файла и вызов одной из его функций в нашем базовом контроллере разрешили внутреннюю ошибку сервера.


2 Stuh_blue [2013-06-06 19:42:00]

Ошибка 500 должна записывать ошибку в ваших журналах ошибок, если вы не установили ее. попробуйте поместить файл htacess в корне с чем-то вроде:

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

затем реплицирует ошибку и видит, что выводится в журнал. Как вы говорите, это будет связано с каким-то конфликтом с apache, но ошибка 500 просто слишком универсальна для решения.