Cette explication est basée sur Ubuntu 16.04 mais il est prévu de travailler pour d'autres versions de trop
La plupart des réponses ici de manipuler le php et la version à l'aide de la commande
sudo update-alternatives --set ...
Alors que la commande est très utile, il n'a jamais expliqué ce qu'il fait exactement. Voici l'explication, y compris la sauvegarde et quelques options:
Obtenez de l'Information
- La commande
update-alternatives
est l'affichage ou la modification des liens symboliques qui résident dans une autre direction qui est dans Ubuntu généralement définie comme l' /etc/alternatives
mais qui pourrait être changé aussi.
- une liste complète des options liées à l'
update-alternatives
peut être affichée avec la commande update-alternatives --help
, une explication plus approfondie peut être démontré avec man update-alternatives
.
- Comme la commande
update-alternatives
primaire est de changer les liens symboliques dans un dossier spécial, le contenu de ce dossier peuvent être affichés avec des commandes courantes de trop, à la suite de tous les articles commençant par php
sont indiqués:
$ ls -al /etc/alternatives/php*
lrwxrwxrwx 1 root root 15 Jan 19 02:58 /etc/alternatives/php -> /usr/bin/php7.2
lrwxrwxrwx 1 root root 31 Jan 19 02:58 /etc/alternatives/php.1.gz -> /usr/share/man/man1/php7.2.1.gz
lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2
lrwxrwxrwx 1 root root 35 Jan 19 03:00 /etc/alternatives/php-cgi.1.gz -> /usr/share/man/man1/php-cgi7.2.1.gz
lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
- pour afficher les éléments avec la commande
update-alternatives
utilisez cette commande:
$ update-alternatives --list php
/usr/bin/php7.0
/usr/bin/php7.2
- pour montrer plus de détails, vous pouvez l'exécuter:
$ update-alternatives --display php
php - auto mode
link best version is /usr/bin/php7.2
link currently points to /usr/bin/php7.2
link php is /usr/bin/php
slave php.1.gz is /usr/share/man/man1/php.1.gz
/usr/bin/php7.0 - priority 70
slave php.1.gz: /usr/share/man/man1/php7.0.1.gz
/usr/bin/php7.2 - priority 72
slave php.1.gz: /usr/share/man/man1/php7.2.1.gz
Enfin, nous voulons toujours savoir qui php-versions on peut lien. La commande suivante affiche une liste des actuellement disponibles php-versions en /usr/bin/
:
$ ls -al /usr/bin/php*
lrwxrwxrwx 1 root root 21 Jan 1 19:47 /usr/bin/php -> /etc/alternatives/php
-rwxr-xr-x 1 root root 4385840 Apr 5 18:13 /usr/bin/php7.0
-rwxr-xr-x 1 root root 4875488 Apr 5 18:10 /usr/bin/php7.2
lrwxrwxrwx 1 root root 25 Jan 1 19:47 /usr/bin/php-cgi -> /etc/alternatives/php-cgi
-rwxr-xr-x 1 root root 4279672 Apr 5 18:13 /usr/bin/php-cgi7.0
-rwxr-xr-x 1 root root 4769272 Apr 5 18:10 /usr/bin/php-cgi7.2
-rwxr-xr-x 1 root root 663 Feb 29 2016 /usr/bin/phpunit
La sauvegarde de l'information
- Pour faire une information de sauvegarde de ces liens symboliques simplement enregistrer la liste dans un fichier et l'enregistrer sur votre bureau avec cette commande (ajuster le nom du fichier
alternatives-php.txt
de vos besoins):
$ echo "command: update-alternatives --list php" > ~/Desktop/alternatives-php.txt
$ update-alternatives --display php >> ~/Desktop/alternatives-php.txt
$ echo "command: update-alternatives --display php" >> ~/Desktop/alternatives-php.txt
$ update-alternatives --display php >> ~/Desktop/alternatives-php.txt
si vous le souhaitez, vous pouvez encore ajouter le résultat de la commande ls
comme indiqué ci-dessus:
$ echo "command: ls -al /etc/alternatives/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /etc/alternatives/php* >> ~/Desktop/alternatives-php.txt
... et le PHP-versions:
$ echo "command: ls -al /usr/bin/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /usr/bin/php* >> ~/Desktop/alternatives-php.txt
Modifier le PHP-version de ligne de commande
- Si l'on filtre tout d'abord l'
man
-les documents de la liste dans /etc/alternatives/php*/
comprend 3 lignes:
$ ls -al /etc/alternatives/php*
lrwxrwxrwx 1 root root 15 Jan 19 02:58 /etc/alternatives/php -> /usr/bin/php7.2
lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2
lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
- Alors que, d'une part, il peut être utile d'avoir des liens constants pour l'ensemble du système, d'autre part, le fait que plusieurs php-versions existent déjà sur le système implique qu'il est utilisé pour le développement et php pour
cli
, web
et cgi
peut être configuré différemment.
Qui lien symbolique doit être changé?
PHP pour le web est généralement pas configuré par l'utilisation des liens symboliques en /etc/alternatives
et cli
(ligne de commande) n'est généralement pas à l'aide de l'échelle cgi-version ou cgi-configuration. On peut donc supposer que le fait de changer uniquement le lien pour php
de travail pour les ligne de commande, de changement d' php-cgi
et php-cgi-bin
n'est probablement pas nécessaire.
Habituellement, la version la plus récente est liée, par défaut, de sorte que la commande ci-dessous à l'aide d'une version plus ancienne prises à partir de la liste dans /usr/bin/
:
$ sudo update-alternatives --set php /usr/bin/php7.0
update-alternatives: using /usr/bin/php7.0 to provide /usr/bin/php (php) in manual mode
Contrôle
La vérification de la modification:
$: php -v
PHP 7.0.29-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr 5 2018 08:34:50) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.29-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies
La modification a été acceptée et que la version utilisée est une ancienne maintenant.
- Maintenant, nous vérifions la version de l'homme-page est écrite pour:
$: man php
... [SCROLL DOWN]
VERSION INFORMATION
This manpage describes php, version 7.0.29-1+ubuntu16.04.1+deb.sury.org+1.
COPYRIGHT
...
Cela signifie que le PHP-version est compatible avec l'homme-et de la page de la commande man php
retourne le droit de descriptions pour le courant de php-version et pas de manuel d'ajustements concernant l'homme-page ont été nécessaires.