98 votes

Comment puis-je changer la version php-cli sur Ubuntu 14.04?

Je suis nouveau dans l'utilisation de Linux et j'ai cassé certains paramètres php lors d'une falsification.

Si j'exécute un script php contenant: phpinfo(); il affiche les versions php en 5.6, mais via la ligne de commande, si j'exécute php -v il renvoie une version 7.0.

Je veux que les deux versions correspondent.
Comment puis-je corriger mon chemin de ligne de commande pour utiliser également php 5.6?

242voto

Sergey Repin Points 1026
 sudo update-alternatives --set php /usr/bin/php5.6
 

Veuillez consulter: Source

63voto

Dmitry Points 41

Voici une manière plus interactive:

 update-alternatives --config php
 

Vous verrez la liste de toutes les versions disponibles et sélectionnez l'une d'entre elles

45voto

Depuis PHP 7.1 => PHP 5.6

 sudo update-alternatives --set php /usr/bin/php5.6
 

De PHP 5.6 => PHP 7.1

 sudo update-alternatives --set php /usr/bin/php7.1
 

Vous pouvez changer les versions comme vous le souhaitez.

Vous pouvez consulter ce tutoriel

Cordialement!!

38voto

David Points 1713

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.

3voto

DocWeird Points 165

Vous pouvez essayer de définir le chemin vers la version php correcte sur la ligne de commande du terminal:

 set PATH="/usr/bin/php5.6/bin:$PATH"
 

Modifiez le chemin pour qu'il corresponde à votre propre chemin vers PHP 5.6 (c'est-à-dire que s'il a été installé en premier, il pourrait s'agir de "/ usr / bin / php").

Le "$ PATH" à la fin ajoute la valeur du chemin actuel, alors n'oubliez pas de l'utiliser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X