Identique au script de "Growling Flea", mais utilisant de nouvelles versions.
Ajouter le PPA
Les packages PHP 5.6 et PHP 7.0 proviennent d'un PPA tiers, non fourni par les référentiels officiels Ubuntu de Canonical. Les PPA que je recommande ici proviennent d'Ondřej Surý, qui empaquette PHP pour Debian (qui est ensuite utilisé par Ubuntu). Ainsi, ce n'est pas un référentiel officiel, mais il n'est pas vraiment aléatoire! Le PPA lui-même est
ici
Pour ajouter le PPA à votre configuration:
sudo add-apt-repository ppa:ondrej/php
Ensuite, nous voudrons également récupérer des informations sur les offres de ce nouveau PPA, alors exécutez:
sudo apt-get update
Installer de nouvelles versions de PHP
Certains paquets php5 ont déjà été installés, mais je n’ai rien désinstallé, j’ai simplement laissé apt à préciser ce qu’il voulait faire quand je lui ai demandé d’installer les nouvelles versions:
sudo apt-get install php5.6 php7.0
Cela a entraîné beaucoup de plaintes d'apt et de nombreux conflits. La première solution suggérée consistait à supprimer tous les packages php5 de base afin que PHP 5.6 puisse être installé - alors je viens d'accepter la première suggestion.
J'utilise apache, donc cette configuration m'a fourni apache avec les modules php5.6 et php7.0 disponibles, et le module php5.6 effectivement chargé.
En plus du PHP lui-même, toutes les extensions et autres outils que vous attendez de PHP sont présents pour les deux versions de PHP. Il est donc très facile d'ajouter les modules dont vous avez besoin. J'ai été très très impressionné par la qualité de son travail.
Configuration et changement de version
Maintenant, vous avez installé deux versions de PHP complètement distinctes sur votre système, regardons donc où toutes les pièces sont parties!
Les fichiers de configuration sont tous dans /etc/php/5.6
et /etc/php/7.0
respectivement. Ici, vous pouvez configurer quelles extensions sont chargées, définir les paramètres ini et tout le reste pour chaque version de manière isolée.
Je suis un utilisateur d'Apache et, comme je l'ai mentionné, les deux modules sont disponibles. Donc, pour passer de l'un à l'autre, je dois faire:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
Pour les utilisateurs de nginx, les changements sont presque aussi simples. Digital Ocean dispose d’une bonne documentation (ils ont une excellente documentation!). Consultez leur guide:
https://www.digitalocean.com/community/tutorials/how-to- upgrade-to-php-7-on-ubuntu-14-04
car il comprend une section sur la reconfiguration de nginx pour utiliser une autre version de PHP.
Depuis la ligne de commande, j'ai à la fois des commandes php5.6 et php7.0 disponibles. J'ai aussi toujours une commande php - regardez dans / etc / alternatives pour voir si c'est un lien symbolique vers une version particulière de PHP cli *. Vous pouvez également vérifier rapidement lequel vous utilisez en exécutant php -v
.
* Plus spécifiquement, lancez php pour voir quelle version de PHP est utilisée - mais cela va probablement pointer vers /usr/bin/php
, ce qui pour moi est un lien symbolique vers la /etc/alternatives/php
commande.
Travailler avec des extensions
Ce PPA est livré avec le paquet php-pear habituel qui propose la commande pecl pour les deux versions de PHP, de sorte que toutes les extensions disponibles via PECL peuvent être installées de la manière habituelle. Vous aurez également besoin des en-têtes appropriés pour que php5.6-dev ou php7.0-dev soit installé.
Quand l'installation de pecl est terminée, vous recevrez une note pour ajouter le fichier * .so à votre php.ini; En fait, la meilleure chose à faire ici est de regarder ce qui se passe /etc/php/mods-available
. Il y aura déjà quelques modules ici, chacun dans son propre fichier nommé d'après l'extension et se terminant par .ini. Vous pouvez en copier un à utiliser comme modèle ou créer le vôtre et y insérer toute la configuration appropriée pour l'extension (au minimum, vous en aurez besoin extension=[extensionName].so
).
Une fois que la nouvelle extension est dans les mods disponibles, activez-la puis vérifiez-la en faisant:
sudo phpenmod extension
php -m
Cela créera les liens symboliques aux bons endroits pour que votre version actuelle de PHP charge ce module, et vous devriez le voir dans la liste des modules générés par le php -m
. Astuce de pro: si vous ne le voyez pas dans la sortie, faites défiler l'écran jusqu'en haut pour voir s'il y a des messages d'erreur utiles.