Обновление PHP в CentOS Linux

Информация взята с http://ru.ispdoc.com/index.php/Обновление_PHP_в_CentOS_Linux. Ничего секретного, но в жизни полезно :-)

CentOS Linux в стандартном репозитории включает в себя PHP версии 5.1.6. Если нужна более новая версия, то наиболее оптимально воспользоваться сторонними репозиториями пакетов. Ниже приведены инструкции по обновлению до версий 5.2.x и 5.3.x.

Эта статья претерпела большое количество изменений с момента написания, равно как произошли изменения в репозиториях, и в настоящее время (08.09.2011) рекомендуется использовать репозиторий Atomic (по состоянию на 08.09.2011) во всех случаях обновления, либо REMI при обновлении до версии 5.3, если Atomic не подходит.

Обновление PHP с 5.1.6 до версии 5.2.x

Способ 1: использование репозитория Atomic (рекомендуется)

Наиболее стабильный и оптимальный метод — это использование репозитория Atomic, CentOS-guru советуют использовать его вместо репозитория CentOS-Testing из-за возможной нестабильности тестового программного обеспечения.

По состоянию на 08.09.2011 в репозитории PHP версии 5.2.17.

Подключите репозиторий:

wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh

В репозитории по умолчанию ставится PHP 5.3 — это необходимо отключить, прописав исключение в секцию [atomic] в файле /etc/yum.repos.d/atomic.repo

exclude = php*5.3*

Обновите PHP, также потребуется обновить модуль mcrypt

  1. yum update php
  2. yum update php-mcrypt

После успешного выполнения команды проверьте версию PHP и работу (что расширения подгружаются и ни на что не ругается) и перезапустите Apache:

  1. php -v
  2. php -m
  3. /etc/init.d/httpd restart

Способ 2: Использование репозитория CentOS-Testing (не рекомендуется)

По состоянию на 15.07.2010 в репозитории PHP версии 5.2.10 

Создайте файл /etc/yum.repos.d/CentOS-Testing.repo со следующим содержимым:

  1. # CentOS-Testing:
  2. # !!!! CAUTION !!!!
  3. # This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras.
  4. # They may or may not replace core CentOS packages, and are not guaranteed to function properly.
  5. # These packages build and install, but are waiting for feedback from testers as to
  6. # functionality and stability. Packages in this repository will come and go during the
  7. # development period, so it should not be left enabled or used on production systems without due
  8. # consideration.
  9. [c5-testing]
  10. name=CentOS-5 Testing
  11. baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
  12. enabled=1
  13. gpgcheck=1
  14. gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
  15. includepkgs=php*

Запустите обновление и после успешного обновления перезапустите apache:

  1. yum update
  2. service httpd restart

Обновление PHP с 5.1.6 до версии 5.3.x и MySQL-сервера с 5.0 до 5.1

В данном разделе описано, как обновить PHP до версии 5.3. При этом также обновится MySQL-сервер 5.0 до 5.1, так как его обновление необходимо для корректной работы расширения php-mysql.

Способ 1: Использование репозитория Atomic (рекомендуется)

Мы рекомендуем использовать репозиторий Atomic точно так же, как для обновления PHP до версии 5.2. Просто подключаете и обновляете так, как указано выше (при обновлении до версии 5.2). Не добавляйте в конфиг исключение, которое отключает версию 5.3. 

При обновлении PHP при этом будет установлена версия PHP 5.3

Способ 2: Использование штатного репозитория (не рекомендуется)

В дистрибутиве CentOS 5.6 и выше появились пакеты php52-* в штатном репозитории. Можно установить их. Однако возможна некоторая несовместимость и проблемы с зависимостями (так, например, при удалении старого php деинсталлируется phpmyadmin и squirrelmail) 

Удалите старый PHP 5.1

rpm -e php php-mysql ....

(выполнить для каждого пакета) 

Установите php52

yum install php52 php52-cli php52-mysql

Способ 3: Использование репозитория REMI (допускается)

Данный способ можно использовать, если Atomic вас чем-либо не устраивает. Используется репозиторий REMI, кроме этого следует подключить репозиторий EPEL, так как он требуется как зависимость для REMI.

Подключение репозиториев EPEL и REMI

Подключите репозиторий EPEL:

Для 32-битной системы (определить версию системы можно командой uname -a)

rpm -ihv http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Для 64-битной CentOS Linux

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 и MySQL из репозитория REMI

Чтобы обновить PHP 5.1.6 до 5.3, выполните команду

yum --enablerepo=remi update php mysql

Примечание 

Конфигурация подключенного репозитория по умолчанию 

При установке репозитория создается файл в каталоге /etc/yum.repos.d/, в нем опция enabled=1 или enabled=0 определяет «автоматическое» подключение репозитория. 

Дополнение при использовании ISPmanager 

После обновления PHP необходимо также обновить кэш пакетов ISPmanager командой 

/usr/local/ispmgr/sbin/pkgctl cache

для корректного отображения версии в меню "Настройки сервера"