Улучшение по сравнению с другим ответом Webtatic:
1 Используя руководство на http://www.webtatic.com/packages/php54/ :
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
2 Сначала вы должны увидеть, какие существующие установленные пакеты нуждаются в замене, вы можете сделать это, используя оболочку yum, чтобы объединить удаление php-common и установку php54w-common в одной транзакции (чтобы общие зависимости не удалялись)
yum shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n
Не говорите «y» для результатов, но обратите внимание на все пакеты, упомянутые в «Удаление для зависимостей», например
Removing for dependencies:
php
php-cli
php-pear
php-pecl-memcache
php-mysql
Если в этом списке есть другие пакеты, кроме php *, вы не можете легко переключиться на Webtatic PHP 5.4, но вам придется исследовать альтернативы. В Webtatic есть пакеты для замены всех базовых пакетов php (для подтверждения см. Пакеты, перечисленные на странице, на которую ссылается пункт 1.), поэтому проблем не должно быть, если только вы не используете сторонние репозитории, в которых установлены пакеты, зависящие от конкретной версии php установлены.
Для остальной части установки (все еще в оболочке yum) вы просто удаляете эти пакеты и устанавливаете их аналоги php54w- *:
> remove php-common php php-cli php-pear php-pecl-memcache php-mysql
> install php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> run
…
Is this ok [y/N]: y
После этого вы должны увидеть только те пакеты, которые вы установили для удаления и установки в списке, и вы можете подтвердить установку для переключения. Любые службы, запущенные в настоящее время с загруженным php, необходимо перезапустить, например httpd или php-fpm.
Что касается «беспрепятственного», любые изменения программного обеспечения, происходящие в то время, когда пользователи имеют доступ к веб-сайту, должны быть полностью поняты. Общие библиотеки, которые удаляются и добавляются, когда процесс еще не загружен, могут потенциально загружаться, пока разделяемая библиотека отсутствует. Лучше делать обновления программного обеспечения, как это в автономном режиме, и желательно сначала протестировать их на непроизводственной машине, чтобы убедиться, что процесс работает должным образом.
3 Чтобы перейти к гипотетическому базовому пакету CentOS php54 (CentOS 5 использовал префикс php53), вы просто запускаете вышеупомянутые шаги, заменяя удаление php удалением php54w, и установку php54w установкой php54, например
yum shell
> remove php54w-common
> install php54-common
> run
…
Is this ok [y/N]: n
…
> remove php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> install php54-common php54 php54-cli php54-pear php54-pecl-memcache php54-mysql
> run
Is this ok [y/N]: y
Однако, что касается переключения на гипотетическую базу php54, для некоторых пакетов, скорее всего, не будет альтернатив (например, в CentOS 5 не было расширения php53-pecl-memcache), а в Webtatic есть пакеты, которых нет в базе CentOS (например, php54w -pecl-zendopcache). Если они отсутствуют, то обычно у вас нет другого выбора, кроме как напрямую использовать pecl для их установки.
4 Любое обновление PHP может привести к ошибкам, и веб-сайты должны быть проверены повторно. Это не относится только к Webtatic, но общая идея, что новые функции вводят новые ошибки.
В отличие от репозитория Remi в принятом ответе, репозиторий Webtatic EL6 никогда не использует те же имена пакетов, что и базовые репозитории CentOS, поэтому не будет переопределять установку / обновление пакетов, на которые вы не собираетесь переключаться, и поэтому включен по умолчанию.
Отказ от ответственности: я владелец / сопровождающий Webtatic