CentOS и старый PHP (или как поставить PHP 5.2.x на Центу)

Linux среди нас 2 комментария

Исходная конфигурация - CentOS 5.2, PHP 5.1.6, Apache 2.2.3.
Обновляемся до PHP 5.2.9
Так уж повелось что PHP в стандартной репе CentOS только версии 5.1.6, а что-либо посвежее нужно тягать  свой я обновлял из CentOS-5 Testing (не помню уже зачем, помоему ради спортивного интереса)

Как подключить дополнительные репозитории в ручную

Лезем в /etc/yum.repos.d/ создаем там файл CentOS-Testing.repo и пишем туда

[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing

Как теперь его пользовать?

yum --enablerepo=c5-testing update php*

Получаем обновленный PHP 5.2.6 и проблему с mcrypt и mhash. Они дают нам такую ошибку:

[07-Jun-2009 13:46:55] PHP Warning: PHP Startup: mcrypt: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
[07-Jun-2009 13:46:55] PHP Warning: PHP Startup: mhash: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match

Это значит что PHP обновился, протоколы обновились, а вот эти 2 библиотеки так и остались лузерами. Как починить эту проблему я так и не понял (в CentOS-Devel рассылках что-то невнятное происходит), но решил проблему в комплексе - обновил PHP до 2.6.9 =)

Установка реп из rpm'ок

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

Что происходит? качаем rpm от remi и инсталлим их =)
Дальше пользуем как и в предыдущем примере:

yum --enablerepo=repo update php*

Только в этом случае yum начал ругаться матом на mysql, мол файлики там какие-то не те. Ну так за чем дело встало? Обновим и мускуль ;) (перед обновлением строго-настрого сделайте бекап!!! mysql_dump вам в помощь)

yum --enablerepo=repo update mysql*
yum --enablerepo=repo update php*

Теперь имеем обновленный MySQL (бекап восстанавливать не пришлось - все данные были сохранены) и PHP 5.2.9.

где сдать анализ пцр