CentOS в стандартном репозитории включает в себя PHP 5.1.6. Если для работы необходима более новая версия PHP, то можно воспользоваться сторонними репозиториями.
Обновлние с PHP 5.1.6 до PHP 5.2.x
Использование репозитория Atomic
Использование для обновления репозитория Atomic - наиболее оптимальный и стабильный метод. Прежде всего необходимо подключить репозиторий и принять лицензию скрипта установки:
wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh
По умолчанию в репозитории ставится версия PHP 5.3.x. Чтобы поставить версию PHP 2.1.7, необходимо в секцию [atomic] файла /etc/yum.repos.d/atomic.repo добавить исключение:
exclude = php*5.3*
После этого можно обновить PHP:
yum update php
При этом не обновляется модуль mcrypt, поэтому его необходимо установить дополнительно:
yum update php-mcrypt
Или одной командой:
yum update php && yum -y install php-mcrypt
После завершения обновления необходимо перезагрузить Apache:
service httpd restart
или
/etc/init.d/httpd restart
Проверяем установленную версию и подключенные модули:
php -v
php -m
Если обновление прошло без ошибок, на экране появится сообщение:
PHP 5.2.17 (cli) (built: Jan 7 2011 08:49:48)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
и список установленных расширений.
Использование репозитория CentOS-Testing
Обновление из штатного тестового репозитория не рекомендуется из-за возможной нестабильности тестового программного обеспечения.
Сначала необходимо создать файл /etc/yum.repos.d/CentOS-Testing.repo:
# CentOS-Testing:
# !!!! CAUTION !!!!
# This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras.
# They may or may not replace core CentOS packages, and are not guaranteed to function properly.
# These packages build and install, but are waiting for feedback from testers as to
# functionality and stability. Packages in this repository will come and go during the
# development period, so it should not be left enabled or used on production systems without due
# consideration.
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs=php*
После чего нужно запустить обновление:
yum update
После зварешения обновления необходмио перезагрузить Apache. В результате будет установлена версия PHP 5.2.10
Обновлние с PHP 5.1.6 до PHP 5.3.x
Как и при обновлении до PHP 5.2.x, рекомендуется использование репозитория Atomic. Но для обновления до PHP 5.3 не требуется прописывать исключение.
Использование репозитория REMI
Если по какой-то причине репозиторий Atomic не нравится, можно использовать репозиторий REMI. Сначала необходимо подключить репозиторий EPEL, так как он требуется для репозитория REMI:
rpm -ihv http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
или
rpm -ihv http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
Затем подключить репозиторий REMI:
rpm -ihv http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
После подключения репозиториев обновляем PHP до версии 5.3.x и MySQL до версии 5.1, так как это необходимо для корректной работы:
yum --enablerepo=remi update php mysql
Использование штатного репозитория
Использование штатного репозитория не рекомендуется из-за возможной несовместимости и проблем с зависимостями. Для обновления сначала необходимо удалить старую версию PHP. Для этого надо для каждого пакета выполнить команду:
rpm -e php
После этого можно устновить версию PHP 5.2.x:
yum install php52 php52-cli php52-mysql
Downgrade PHP 5.3 до версии 5.2 в CentOS 6.x
Часто для выполнения скриптов, написанных для старых версий PHP, требуется понижение версии PHP 5.3.x до версии PHP 5.2.17. Как и в случае с обновлением PHP с версии 5.1.6 до версии 5.2.17, оптимально воспользоваться репозиторием Atomic.
После подключения репозитория Atomic требуется отключить возможность установки содержащих PHP пакетов в стандартном репозиториии. Для этого в секции [base] и [updates] файла /etc/yum.repos.d/CentOS-Base.repo нужно добавить исключение:
exclude = php*
После этого следует удалить версию PHP 5.3.x (вместе с PHP будут удалены PhpMyAdmin и SquirrelMail) командой:
yum remove php*
Теперь можно установить нужную версию PHP, необходимые расширения, PhpMyAdmin, SquirrelMail и вернуть файлы конфигурации:
yum install php-5.2.17 php-mcrypt-5.2.17 php-gd-5.2.17 php-mbstring-5.2.17 php-pdo-5.2.17 php-mysql-5.2.17
yum install phpmyadmin
yum install squirrelmail
mv /etc/phpMyAdmin/config.inc.php.rpmsave /etc/phpMyAdmin/config.inc.php
mv /etc/squirrelmail/config.php.rpmsave /etc/squirrelmail/config.php
mv /etc/httpd/conf.d/squirrelmail.conf.rpmsave /etc/httpd/conf.d/squirrelmail.conf
Для избежания смены версии PHP при установке программного обеспечения следует отключить возможность автоматической установки расширений, добавив в секцию [atomic] файла /etc/yum.repos.d/atomic.repo исключение:
exclude = php*
После завершения установки необходимо перезагрузить Apache.
Если на сервере используется ISPmanager, то для корректного отображений версий в панели необходимо обновить кэш пакетов:
/usr/local/ispmgr/sbin/pkgctl cache
Для отключения использования репозиториев применяется опция enabled в соответствующих файлах в каталоге /etc/yum.repos.d/.
|