我已经在我的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 5.6和php 7.1之间切换呢?


当前回答

您可以使用下面的脚本轻松地在PHP版本之间切换 我还包括了phpize配置。

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

下载脚本文件并运行

sh switch.sh

其他回答

我觉得你应该试试这个

从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

在ubuntu 20.04中切换PHP 8.0和PHP 7.4版本:

将PHP 8.0降级为PHP 7.4

sudo a2dismod php8.0
sudo a2enmod php7.4
sudo service apache2 restart
sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
sudo service apache2 restart

将PHP 7.4升级到PHP 8.0

sudo a2dismod php7.4
sudo a2enmod php8.0
sudo service apache2 restart
sudo update-alternatives --config php
sudo update-alternatives --config phar
sudo update-alternatives --config phar.phar
sudo service apache2 restart

检查更改:

在控制台中运行PHP -v,你会得到:

PHP 8.0.3 (cli)(已构建:march 5 2021 07:54:13) (NTS) 版权所有(c) PHP集团 Zend Engine v4.0.3,版权所有(c) Zend Technologies 与Zend OPcache v8.0.3,版权(c),由Zend Technologies

OR

PHP 7.4.16 (cli)(已构建:march 5 2021 07:54:38) (NTS) 版权所有(c) PHP集团 Zend Engine v3.4.0,版权所有(c) Zend Technologies 与Zend OPcache v7.4.16,版权(c),由Zend Technologies

通过添加phpinfo()在可运行的本地环境中添加一个PHP文件,如/var/www/html/ path;并在浏览器中获取PHP信息(在页面顶部可以看到PHP版本)

您可以创建一个脚本来切换版本: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切换到phph5.6 !

您可以使用下面的脚本轻松地在PHP版本之间切换 我还包括了phpize配置。

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

下载脚本文件并运行

sh switch.sh

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

E.g.

我想把PHP版本从7.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用于启用当前版本