web-dev-qa-db-fra.com

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

Aujourd’hui, j’ai parcouru les mises à jour habituelles de mon paquet de serveur et découvert que ppa:ondrej/php5-5.6 avait été amorti et que nous devions maintenant passer à ppa:ondrej/php.

Les instructions de base fournies sont à exécuter:

Sudo add-apt-repository ppa:ondrej/php

Et alors:

Sudo apt-get update
Sudo apt-get upgrade --show-upgraded

En regardant le nouveau référentiel, les noms ne semblent pas complètement alignés, je pense donc que je devrai faire quelques installations d'apt-get pour que tous les bons paquets soient installés. Il semble également que les sous-packages (ie php-Gd) s’installeront pour toutes les versions de PHP et pourront également installer PHP 5.5 et 7.0 ( https://stackoverflow.com/questions/37197539/an- after-ppaondrej-php5-deprecation )

Ma question est donc la suivante: quel est le moyen le plus propre de "basculer" de fichiers ppas et de nettoyer les paquets existants, en considérant qu'il s'agit d'un serveur de production? Devrais-je essayer de supprimer tous les packages installés à partir du précédent PPA et/ou supprimer le PPA de mon système?

Il ne figure pas encore dans la page principale du PPA, mais le message de mise à niveau indiquait la dépréciation en juin 2016, de sorte que le temps nécessaire pour reconstruire notre image de serveur n'est pas très long.

J'ai trouvé cette page contenant des instructions pour changer la version de PHP utilisée par Apache: https://dzone.com/articles/php-70-and-56-on-ubunt

10
Loren

Les anciens packages php5-* sont co-installables avec le nouveau schéma phpX.Y-*. La première chose à faire est donc d’installer et d’activer les nouveaux packages:

Apache 2.4

Vous devez installer les nouveaux packages libapache2-mod-phpX.Y, puis désactiver l'ancien php5 et activer le nouveau module versionné, par exemple, f.e. 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, il suffit d’installer phpX.Y-fpm et de changer le chemin du socket dans la configuration de votre serveur Web en /run/php/phpX.Y-fpm.sock et de copier 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, toujours 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

Désormais, si vous souhaitez supprimer les anciens packages, vous pouvez rencontrer des problèmes car certains peuvent nécessiter d'anciens noms php5 *, vous pouvez également ajouter ppa:ondrej/php5-compat qui fournit une couche mince de packages de compatibilité mappant php5-<foo> en php5.6-<foo> pour php5 principal *. paquets:

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

Essayez certainement ceci en premier dans environnement non-production ! Le bon côté est que l'ancienne configuration reste dans /etc/php5 intacte, de sorte que vous pouvez migrer les anciens paramètres.

Après avoir mis à jour les packages principaux PHP, vous pouvez rechercher le reste des packages php5-* 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 repo php5-compat, qui fera ce mappage automatiquement.

Le texte le plus à jour se trouve toujours dans le DEB.SURY.ORG PPA Wikis .

12
oerdnj