我已经在我的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版本,比如PHP 5.6,你也安装了PHP 7.2,所以你的机器中有多个PHP。有一些应用程序是在旧的PHP 5.6是最新版本时开发的,它们仍然存在,你可以在这些应用程序上工作,你可能同时在Laravel上工作,但Laravel需要PHP 7+才能启动。明白了吗?

在这种情况下,您可以在PHP版本之间切换以满足您的需求。

从PHP 5.6切换到> PHP 7.2

Apache: -

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

命令行:

sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2

反之亦然,从PHP 7.2切换=> PHP 5.6

Apache: -

sudo a2dismod php7.2
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
sudo update-alternatives --set phpize /usr/bin/phpize5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6

其他回答

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

禁用所选PHP版本…

Sudo a2dismod php5 Sudo服务apache2重启 用于启用其他PHP版本.... Sudo a2enmod php5.6 Sudo服务apache2重启

它会升级Php版本,如果你想降低版本,也一样,你可以通过PHP_INFO();

交互切换模式

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。

Apache:

$ 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。

Apache:

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

命令行:

$ sudo update-alternatives --set php /usr/bin/php5.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版本)

从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

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

sudo update-alternatives --config php

或者手工操作

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