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 просто слишком универсальна для решения.