Обновление PHP до 5.2.x в CentOS 5

Просто, как раз-два-три

На сервере с  5.1 столкнулся с такой проблемой: при открытии -страниц с завидным постоянством писал в лог следующие ошибки:

[-]
View Code Text
*** glibc detected *** /usr/sbin/httpd: corrupted double-linked list: 0x09a939f8 ***

К сожалению, поиск в Google практических результатов не дал: могла случаться на любом железе и любой версии . Больше всего жаловались (не)счастливые обладатели Zend Optimizer.

Обновил CentOS до 5.2 (в обновлении пришёл новый libc), но это не помогло. Странно, я видел много серверов, работающих на CentOS без таких ошибок.

Пытаясь найти минимальную конфигурацию, на которой бы воспроизводились ошибки, я отключал один за одним модули Apache, модули PHP, но всё тщетно. Когда же я отключил mod_php, ошибка пропала — на статических страницах всё было прекрасно.

PHP оказался старым: 5.1.6 или около того. А с обновлением были проблемы: RedHat ES5, как и CentOS, не поддерживает PHP более новых версий. Установка из исходного кода тоже не выход: на живом сервере нарушать зависимости пакетов почему-то не хотелось.

К счастью, выход нашелся довольно быстро: использовать репозиторий Remi Collet. Детали по ссылке, а мне помогло такое решение:

[-]
View Code Bash
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-4.el5.remi.noarch.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
yum --enablerepo=remi update php
Update: статья писалась почти год назад, и читатели говорят, что ссылки уже битые и рекомендуют такое:
[-]
View Code Bash
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-7.el5.remi.noarch.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
yum --enablerepo=remi update php

После чего

[-]
View Code Bash
/etc/init.d/httpd restart
tail -f /var/log/httpd/error_log

Вуаля, ошибка исчезла! И не пришлось звать на помощь Мастерхост :-)

Для возврата к старой версии PHP (мало ли) нужно сделать так:

[-]
View Code Bash
yum --disablerepo=remi
yum remove php php-cli php-common
yum install php
Автор: ; опубликовано в: Linux, Администрирование; метки: Apache, CentOS, Linux, PHP, ошибка
21
Дек
2008

RSS Комментарии к статье «Обновление PHP до 5.2.x в CentOS 5» (17)  »

  1. Dgikar

    Выдает вот такую ошибку:

    [-]
    View Code Text
    /root$ wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
    --00:26:15--  http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
    Resolving download.fedora.redhat.com... 209.132.183.67
    Connecting to download.fedora.redhat.com|209.132.183.67|:80... connected.
    HTTP request sent, awaiting response... 404 Not Found
    00:26:16 ERROR 404: Not Found.

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Обновление PHP до 5.2.x в CentOS 5»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा