14.04 Чисто обновить до ppa: ondrej / php от ppa: ondrej / php5-5.6

10

Сегодня я прошел через обычные обновления пакетов серверов и обнаружил, что ppa:ondrej/php5-5.6 обесценилось, и теперь мы должны обновиться до ppa:ondrej/php .

Основные приведенные инструкции:

sudo add-apt-repository ppa:ondrej/php

И затем:

sudo apt-get update
sudo apt-get upgrade --show-upgraded

Глядя на новый репозиторий, имена не кажутся полностью линейными, поэтому я думаю, что мне нужно будет сделать некоторые apt-get установки, чтобы установить все нужные пакеты. Также кажется, что подпакеты (то есть php-gd) будут установлены для всех версий php и могут также установить php 5.5 и php 7.0 ( Ссылка )

Итак, мой вопрос: какой самый чистый способ «переключить» ppas и очистить существующие пакеты, учитывая, что это производственный сервер? Должен ли я попытаться удалить все пакеты, установленные из предыдущего PPA, и / или удалить PPA из моей системы?

Это еще не на главной странице для PPA, но сообщение об обновлении дало устаревание в июне 2016 года, так что не очень длинная временная шкала для восстановления нашего изображения сервера.

Я нашел эту страницу, в которой содержатся инструкции по отключению PHP-версии apache: Ссылка     

задан Loren 17.05.2016 в 13:53
источник

1 ответ

11

Старые пакеты php5-* совместимы с новой схемой phpX.Y-* , поэтому первое, что вам нужно сделать, это установить и включить новые пакеты:

Apache 2.4

Вам нужно установить новые пакеты libapache2-mod-phpX.Y , а затем отключить старый php5 и включить новый модуль версии, т. е. для PHP 5.6:

sudo apt-get install libapache2-mod-php5.6
sudo a2dismod php5
sudo a2enmod php5.6

NGINX / Apache 2.4 с PHP-FPM

Это еще проще, просто установите phpX.Y-fpm и измените путь сокета в конфигурации вашего веб-сервера на /run/php/phpX.Y-fpm.sock и скопируйте старую конфигурацию, т. е. для PHP 5.6:

sudo apt-get install php5.6-fpm
# now change the socket path in your nginx/apache2 configuration
# and restart the server

Если вы определили больше пулов FPM, вам нужно скопировать старую конфигурацию в новый путь, снова для PHP 5.6:

# keep the new www.conf
sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www-5.6.conf
# copy the old configuration to the new path
sudo cp /etc/php5/fpm/pool.d/* /etc/php/5.6/fpm/pool.d/
sudo update-rc.d php5-fpm disable # or uninstall php5-fpm package
# restart PHP 5.6 FPM to read the new configuration
sudo service php5.6-fpm restart

Теперь, если вы хотите удалить старые пакеты, вы можете столкнуться с некоторыми проблемами, так как могут быть пакеты, для которых требуются старые имена php5 *, вы можете добавить ppa:ondrej/php5-compat , которые предоставляют тонкий слой пакетов совместимости, которые отображают php5-<foo> до php5.6-<foo> для основных пакетов php5 *:

sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get dist-upgrade

Определенно попробуйте это сначала в непроизводственной среде! Хорошая сторона заключается в том, что это сохраняет прежнюю конфигурацию в /etc/php5 нетронутой, поэтому вы можете перенести старые настройки.

После обновления основных пакетов PHP вам может понадобиться найти оставшиеся пакеты php5-* и установить их эквивалент, например.

apt-get install php-apcu # for php5-apcu
apt-get install php-memcached # for php5-memcached

Я подготовлю обновление для репликации php5-compat, которое сделает эти сопоставления автоматически.

Более современный текст всегда можно найти в DEB.SURY.ORG PPA Wikis .

    
ответ дан oerdnj 17.05.2016 в 15:03
источник