web-dev-qa-db-fra.com

Comment changer la version de php-cli sur Ubuntu 14.04?

Je suis nouveau à utiliser Linux et je me suis cassé certains paramètres php lors de la falsification.

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

Je veux que les deux versions correspondent.
Comment puis-je réparer mon PATH en ligne de commande pour utiliser également PHP 5.6?

38
Alihan Koç
Sudo update-alternatives --set php /usr/bin/php5.6

S'il vous plaît voir: Source

106
Sergey Repin

De 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 vérifier ceci tutorial

Cordialement!!

25

Cette explication est basée sur Ubuntu 16.04 mais devrait fonctionner également pour d'autres versions

La plupart des réponses ici manipulent la version php en utilisant la commande

Sudo update-alternatives --set ...

Bien que la commande soit très utile, elle n’explique jamais ce qu’elle fait exactement. Voici l'explication, y compris la sauvegarde et certaines options:

Obtenir l'information

  • La commande update-alternatives affiche ou modifie des liens symboliques qui résident dans une autre direction qui est habituellement définie comme Ubuntu par /etc/alternatives mais qui pourrait être changé aussi.
  • une liste complète des options liées à update-alternatives peut être affiché avec la commande update-alternatives --help, une explication plus profonde peut être montrée avec man update-alternatives.
  • En tant que commande update-alternatives est le lien principal qui modifie les liens symboliques dans un dossier spécial. Le contenu de ce dossier peut également être affiché avec des commandes courantes. Tous les éléments commençant par php sont affiché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 articles avec la commande update-alternatives _ utilise cette commande:
$ update-alternatives --list php  
/usr/bin/php7.0  
/usr/bin/php7.2
  • pour afficher plus de détails, vous pouvez exécuter ceci:
$ 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 quelles versions de php nous pouvons relier. La commande suivante affiche une liste des versions php actuellement disponibles dans /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

Sauvegarder les informations

  • Pour faire une sauvegarde informationnelle de ces liens symboliques, enregistrez la liste dans un fichier et enregistrez-la sur votre bureau à l'aide de cette commande (ajustez le nom de fichier alternatives-php.txt à 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 toujours ajouter le résultat de la commande ls comme ci-dessus:

$ echo "command: ls -al /etc/alternatives/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /etc/alternatives/php* >> ~/Desktop/alternatives-php.txt

... et les versions PHP disponibles:

$ echo "command: ls -al /usr/bin/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /usr/bin/php* >> ~/Desktop/alternatives-php.txt

Changer la version de PHP pour la ligne de commande

  • Si nous filtrons d’abord le man- documente 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 pourrait être utile d’avoir des liens cohérents pour l’ensemble du système, d’autre part, le fait que plusieurs versions de php existent déjà sur le système implique qu’il est utilisé pour le développement et php pour cli, web et cgi pourraient être configurés différemment.
    Quel lien symbolique doit être changé?
    PHP pour le Web n’est généralement pas configuré par l’utilisation des liens symboliques dans /etc/alternatives and cli (ligne de commande) n'utilise généralement pas la version cgi ni la configuration cgi. On peut donc supposer que le fait de changer uniquement le lien symbolique pour php fonctionnera pour la ligne de commande, le changement de 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. La commande ci-dessous utilise donc une version antérieure tirée 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

Vérification du changement:

$: 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 la version utilisée est une version antérieure.

  • Nous vérifions maintenant la version pour laquelle la page de manuel est écrite:
$: 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 la version de PHP est compatible avec la page de manuel et la commande man php renvoie les bonnes descriptions pour la version actuelle de php et aucun ajustement manuel concernant la page de manuel n’a été nécessaire.

19
David

Voici de manière plus interactive:

update-alternatives --config php

Vous verrez la liste de toutes les versions disponibles et en sélectionnerez une.

9
Dmitry

Vous pouvez essayer de définir le chemin d'accès à 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 en PHP 5.6 (par exemple, s'il a été installé en premier, cela pourrait ressembler à "/ usr/bin/php").

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

0
DocWeird