296 votes

Changer de version de php en ligne de commande ubuntu 16.04

J'ai installé php 5.6 et php 7.1 sur mon Ubuntu 16.04.

Je sais qu'avec Apache comme serveur web, je peux faire

a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7

Lorsque je désactive php7.1 dans les modules Apache et que j'active php 5.6, Apache reconnaît le changement et utilise l'interpréteur php 5.6 comme prévu.

Mais quand je lance le serveur web interne de php à partir de la ligne de commande :

php -S localhost:8888

php traite les demandes en utilisant php 7. Comment puis-je passer de php 5.6 à php 7.1 en ligne de commande ?

0 votes

573voto

Stevie G Points 1380

Mode de commutation interactif

sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar

Commutation manuelle

De PHP 5.6 à PHP 7.1

Par défaut, PHP 5.6 est installé sur votre système et vous devez passer à PHP 7.1.

Apache :

$ sudo a2dismod php5.6
$ sudo a2enmod php7.1
$ sudo service apache2 restart

Ligne de commande :

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

De PHP 7.1 => PHP 5.6

Par défaut, PHP 7.1 est installé sur votre système et vous devez passer à PHP 5.6.

Apache :

$ sudo a2dismod php7.1
$ sudo a2enmod php5.6
$ sudo service apache2 restart

Ligne de commande :

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

Source :

6 votes

Sudo update-alternatives --set php /usr/bin/php5.6 cette commande m'a fait gagner du temps merci @StevieG

0 votes

Vous êtes le meilleur bro ... Merci beaucoup.

0 votes

J'ai eu un défaut de segmentation au redémarrage d'Apache2. J'ai ensuite découvert que j'avais plus d'une version de PHP activée à la fois. J'ai dû désactiver les versions 7.1 et 7.2 avant d'activer la version 5.6.

487voto

GiorgosK Points 1172

Tapez ceci dans votre ligne de commande, cela devrait fonctionner pour tous les ubuntu entre 16.04, 18.04 et 20.04.

$ sudo update-alternatives --config php

et voici ce que vous obtiendrez

There are 4 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.2   72        auto mode
  1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php7.0   70        manual mode
  3            /usr/bin/php7.1   71        manual mode
  4            /usr/bin/php7.2   72        manual mode
Press <enter> to keep the current choice[*], or type selection number:

Choisissez la version appropriée

14 votes

Celui-ci devrait être la réponse

2 votes

Pourquoi php7.2 deux fois ?

0 votes

@SandOfVega c'est la sortie de la commande et peut afficher quelque chose 2 fois si c'est le défaut je suppose, mais votre sortie peut être différente.

35voto

Kamal Kumar Points 1369

Pour répertorier toutes les versions disponibles et en choisir une :

sudo update-alternatives --config php

Ou faire manuellement

sudo a2dismod php7.1 // disable
sudo a2enmod php5.6  // enable

19voto

Rupinder Sohal Points 101

Je pense que vous devriez essayer ceci

De php5.6 à php7.1

sudo a2dismod php5.6
sudo a2enmod php7.1
sudo service apache2 restart

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

De php7.1 à php5.6

sudo a2dismod php7.1
sudo a2enmod php5.6
sudo service apache2 restart

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

1 votes

Donnez suffisamment d'explications pour que vos réponses permettent de comprendre pourquoi ce code fonctionne et ce qu'il signifie, afin que la réponse soit utile aux utilisateurs qui rencontrent le même problème. Voir le lien pour savoir comment écrire de bonnes réponses.

19voto

FatBoyXPC Points 553

En fait, je ne recommanderais pas d'utiliser a2enmod pour php 5 ou 7. J'utiliserais update-alternatives . Vous pouvez faire sudo update-alternatives --config php pour définir la version de PHP que vous souhaitez utiliser sur l'ensemble du système. Ainsi, les versions de la ligne de commande et d'Apache fonctionnent de la même manière. Vous pouvez lire plus sur update-alternatives sur le page de manuel .

5 votes

Cela ne fonctionne pas pour moi. PHPINFO affiche toujours la même version, même après avoir essayé de choisir.

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