在命令行 ubuntu 上切换 php 版本 16.04

我已经在我的Ubuntu 16.04上安装了php 5.6和php 7.1

我知道Apache作为我的Web服务器,我可以做

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

当我在Apache模块中禁用php7.1并启用php 5.6时,Apache会识别出更改并按预期使用php 5.6解释器。

但是当我从命令行运行内部php Web服务器时:

php -S localhost:8888

php 使用 php 7 处理请求。那么如何在命令行中在php 5.6和php 7.1之间切换呢?


答案 1

交互式切换模式

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

手动切换

从 PHP 5.6 => PHP 7.1

默认 PHP 5.6 已在您的系统上设置,您需要切换到 PHP 7.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

从 PHP 7.1 => PHP 5.6

默认 PHP 7.1 已在系统上设置,您需要切换到 PHP 5.6。

阿帕奇:

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

命令行:

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


答案 2
$ sudo update-alternatives --config php

应该适用于 16.04(18.0420.04)之后的所有 ubuntu 版本)

这是您应该看到的响应

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:

选择适当的版本


推荐