如何在Ubuntu 16.04上从PHP 7降级到PHP 5.6?

我想把我的 PHP 版本从 7 恢复到 5.6,虽然我删除了 PHP 7,然后安装了 PHP 5.6,但似乎还是在运行 7 版本。

有什么简单的方法可以在apache、phpMyAdmin和co配置适当的情况下在PHP版本之间移动?

如果能有一个简单的方法来改变当前的 PHP 版本,甚至是逐个站点的版本,那就太好了。

解决办法

更新 今天我又遇到了PHP7运行的问题,尽管我已经禁用了php7.0apache模块。phpinfo显示php7使用fastCGI ...
...所以,如果你按照下面的说明操作后,还遇到这种情况,你可能需要禁用proxy_fcgi apache模块。

sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart

**1.重新安装 PHP 5.6 ***

对我有用的是这个指南:http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu

实际上,不需要移除 "php7.0",你可以同时安装php5.6(也是因为你对需要php7.0的 "phpmyadmin "包有依赖性问题)。

假设libapache2-mod-php是一个适合你的在Apache中启用PHP的方法,你可以这样进行。

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

2.切换PHP版本

  • 从php5.6到php7.0。

    • 阿帕奇。

         sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
    • CLI。

         sudo update-alternatives --set php /usr/bin/php7.0
  • 从php7.0到php5.6。

    • 阿帕奇。

         sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
    • CLI。

         sudo update-alternatives --set php /usr/bin/php5.6
评论(21)

你的问题缺乏重要的细节,所以我将更广泛地回答。

假设你在使用包,有一些重要的细节。

1.Apache2可以配置为使用libapache2-mod-php7.0包的apache2SAPI或使用php7.0-fpmmod_proxy_fcgi的FPM SAPI。

2.Ubuntu 16.04的软件库中只有PHP 7.0,你可以使用ppa:ondrej/php来增加对PHP 5.6的支持,使用类似的命名方案(例如libapache2-mod-php5.6php5.6-fpm)。

3.如果你使用Apache2 SAPI(libapache2-mod-php*),你需要在安装libapache2-mod-php5.6后通过运行a2dismod php7.0来禁用PHP 7.0,并通过运行a2enmod php5.6来启用PHP 5.6。

4.如果你使用 FPM SAPI(php*-fpm),那么你需要将 FPM unix socket 从/run/php/php7.0-fpm.sock改为/run/php/php5.6-fpm.sock

5.请记住,对于与PHP捆绑的模块(如MySQL),命名惯例是phpX.Y-(例如php7.0-mysqlphp5.6-mysql),但对于外部PECL模块(如APCu,mongodb,...),它只是php-(如php-apcuphp-mongodb)。 我建议在你的系统上运行apt-cache search php来搜索正确的软件包名称,然后再在网上提问。

评论(1)

我认为你应该删除你的php包并安装php5.6。你可以按以下步骤进行。

sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6

然后你可以检查你的 php 的版本以确定。它的做法如下所示。

php -v
评论(2)