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

问题描述 投票:47回答:13

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

我知道Apache是​​我的网络服务器,我能做到

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 6.6和php 7.1之间切换?

php apache command-line-interface php-5.6 php-7.1
13个回答
128
投票

Interactive switching mode

sudo update-alternatives --config php

Manual Switching

From 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

From 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

Source


3
投票

您可以使用这些专门设计用于Ubuntu 16.04 LTS的开源PHP Switch Scripts。

https://github.com/rapidwebltd/php-switch-scripts

有一个setup.sh脚本,它安装了PHP 5.6,7.0,7.1和7.2所需的所有依赖项。完成后,您只需运行以下切换脚本之一即可更改PHP CLI和Apache 2模块版本。

./switch-to-php-5.6.sh
./switch-to-php-7.0.sh
./switch-to-php-7.1.sh
./switch-to-php-7.2.sh

1
投票

从PHP 5.6 => PHP 7.1

$ sudo a2dismod php5.6
$ sudo a2enmod php7.1

对于旧的Linux版本

 $ sudo service apache2 restart

对于更新版本

$ systemctl restart apache2

0
投票

您可以使用以下脚本轻松切换PHP版本我也包含了phpize配置。

https://github.com/anilkumararumulla/switch-php-version

下载脚本文件并运行

sh switch.sh

0
投票

当在Ubuntu 18.04上安装laravel时,默认选择PHP 7.3.0RC3安装,但laravel和symfony将无法正确安装抱怨missin php-xml和php-zip,即使它们已安装。您需要使用上面的说明切换到php 7.1,或者

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

现在,运行laravel新博客,将正确进行


41
投票

在你的shell中键入它

$ sudo update-alternatives --config php

这就是你将得到的

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:

选择合适的版本


10
投票

我想你应该试试这个

从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

从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

9
投票

列出所有可用版本并从中进行选择:

sudo update-alternatives --config php

或者手动完成

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

6
投票

我实际上不建议使用a2enmod for php 5或7.我会使用update-alternatives。您可以执行sudo update-alternatives --config php来设置要使用的系统范围的PHP版本。这使您的命令行和apache版本的工作方式相同。你可以在update-alternatives上阅读更多关于man page的信息。


5
投票

您可以创建一个脚本以从版本切换:sudo nano switch_php然后键入:

#!/bin/sh
#!/bin/bash
echo "Switching to PHP$1..."
case $1 in
    "7")
        sudo a2dismod php5.6
        sudo a2enmod php7.0
        sudo service apache2 restart
        sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php;;
    "5.6")
        sudo a2dismod php7.0
        sudo a2enmod php5.6
        sudo service apache2 restart
        sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php;;
esac
echo "Current version: $( php -v | head -n 1 | cut -c-7 )"

退出并保存使其可执行:sudo chmod +x switch_php

要执行脚本,只需键入./switch_php [VERSION_NUMBER],其中参数为7或5.6

这就是你现在可以轻松地从PHP7切换到PHP 5.6!


5
投票

您可以使用以下命令行在两个PHP版本之间切换。

EG

我想将PHP Version7.1切换到7.2我们可以在命令下面使用

sudo a2dismod php7.1 &&  sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart

a2dismod用于禁用当前的php版本,a2enmod用于启用该版本


3
投票

在终端中键入给定的命令..

禁用所选的PHP版本...

  1. sudo a2dismod php5 sudo service apache2 restart
  2. 用于启用其他PHP版本.... sudo a2enmod php5.6 sudo service apache2 restart

它会升级Php版本,如果你想要版本降级,同样的事情反向,你可以通过PHP_INFO()看到它;


3
投票

使用以下命令从PHP 5.6切换到PHP 7.2:

sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restart

使用以下方法从PHP 7.2切换到PHP 5.6:

sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart
© www.soinside.com 2019 - 2024. All rights reserved.