14.04 Passez proprement à ppa: ondrej / php à partir de ppa: ondrej / php5-5.6

10

Je suis passé par mes mises à niveau habituelles du package serveur aujourd'hui et j'ai découvert qu'il ppa:ondrej/php5-5.6a été déprécié et nous devons maintenant passer à ppa:ondrej/php.

Les instructions de base fournies sont à exécuter:

sudo add-apt-repository ppa:ondrej/php

Puis:

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

En regardant le nouveau référentiel, les noms ne semblent pas s'aligner complètement, donc je pense que je vais devoir faire des installations apt-get pour installer tous les bons packages. Il semble également que les sous-packages (c'est-à-dire php-gd) s'installeront pour toutes les versions de php et pourront également installer php 5.5 et php 7.0 ( /programming/37197539/an-issue-after-ppaondrej- php5-dépréciation )

Donc ma question est, quelle est la manière la plus propre de "changer" les PPAS et de nettoyer les paquets existants étant donné qu'il s'agit d'un serveur de production? Dois-je essayer de supprimer tous les packages installés du PPA précédent et / ou de supprimer le PPA de mon système?

Ce n'est pas encore dans la page principale du PPA mais le message de mise à niveau a donné la dépréciation en juin 2016, donc ce n'est pas un très long délai pour reconstruire notre image de serveur.

J'ai trouvé cette page, qui fournit des instructions pour désactiver la version PHP utilisée par apache: https://dzone.com/articles/php-70-and-56-on-ubuntu

Loren
la source
1
J'écrirai du texte sur le sujet dans le wiki repo ici: github.com/oerdnj/deb.sury.org/wiki J'ai juste besoin de trouver un peu de temps libre. Tout le monde est le bienvenu pour commencer et contribuer pendant ce temps :)
oerdnj

Réponses:

12

Les anciens php5-*packages sont co-installables avec le nouveau phpX.Y-*schéma, donc la première chose que vous devez faire est d'installer et d'activer de nouveaux packages:

Apache 2.4

Vous devez installer de nouveaux libapache2-mod-phpX.Ypackages, puis désactiver l'ancien php5 et activer le nouveau module versionné, par exemple pour PHP 5.6:

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

NGINX / Apache 2.4 avec PHP-FPM

C'est encore plus simple, installez phpX.Y-fpmet modifiez simplement le chemin du socket dans la configuration de votre serveur Web /run/php/phpX.Y-fpm.socket copiez l'ancienne configuration, par exemple pour PHP 5.6:

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

Si vous avez défini plusieurs pools FPM, vous devez copier l'ancienne configuration dans le nouveau chemin, encore une fois pour 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

Maintenant , si vous voulez supprimer les anciens paquets, vous pourriez rencontrer des problèmes , car il pourrait y avoir des paquets qui nécessitent vieux php5 * Les noms, vous voudrez peut - être ajouter ppa:ondrej/php5-compatque fournir la couche mince de paquets de compatibilité carte php5-<foo>à php5.6-<foo>pour principale php5 * colis:

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

Essayez certainement cette première dans un environnement hors production ! Le bon côté est que cela conserve l'ancienne configuration /etc/php5intacte, vous pouvez donc migrer les anciens paramètres.

Après avoir mis à jour les principaux packages PHP, vous voudrez peut-être rechercher le reste des php5-*packages et installer leur équivalent, par exemple

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

Je vais préparer une mise à jour du dépôt compatible avec php5, qui effectuera ces mappages automatiquement.

Le texte le plus récent peut toujours être trouvé dans les Wikis PPA DEB.SURY.ORG .

oerdnj
la source
1
Merci pour tout votre travail! Nous avons un serveur intermédiaire sur lequel je vais tout essayer en premier. Dans vos instructions, vous voudrez peut-être inclure quelque chose sur l'exécution dpkg --get-selections | grep phppour répertorier tous les packages actuels pour aider les gens à mapper les choses (bien que le mappage ppa soit très utile pour ne pas avoir à le faire et à le laisser fonctionner.) Cela pourrait également être bon à incluresudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Loren
Bonne idée avec la suppression de l'ancien PPA.
oerdnj
1
Salut @oerdnj. Cela ne devrait-il pas être a2dismod au lieu de phpdismod là-bas? Et a2enmod au lieu de phpenmod?
Wojtek Naruniec du
Bonne prise, fixe.
oerdnj
L'extension dbase ne fonctionne pas avec votre module 5.6, je pourrais le compiler plus tôt pour l'ancienne version 5.6 mais pas pour le nouveau référentiel. Il est compilé pour l'ancienne version 5.5. mais la version 5.6 est exécutée donc module perdu. Y a-t-il des chances que vous ne puissiez pas désactiver l'ancienne version 5.6 ppa?
Tebe