Покращення в порівнянні з іншими відповідями Webtatic:
1. Використання посібника з веб-сайту http://www.webtatic.com/packages/php54/ :
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
2. Спочатку потрібно переглянути, які існуючі встановлені пакети потребують заміни. Ви можете це зробити, використовуючи yum shell, щоб поєднати видалення 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. Щоб перейти на гіпотетичний базовий пакет php54 CentOS (у 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, а загальної ідеї, що нові функції вводять нові помилки.
На відміну від сховища Ремі у прийнятій відповіді, сховище Webtatic EL6 ніколи не використовує ті ж назви пакетів, що й базові сховища CentOS, тому не буде заміняти установку / оновлення пакетів, на які ви не збираєтесь переходити, і як таке ввімкнено за замовчуванням.
Відмова від відповідальності: Я власник / підтримувач Webtatic