我想把我的 PHP 版本从 7 恢复到 5.6,虽然我删除了 PHP 7,然后安装了 PHP 5.6,但似乎还是在运行 7 版本。
有什么简单的方法可以在apache、phpMyAdmin和co配置适当的情况下在PHP版本之间移动?
如果能有一个简单的方法来改变当前的 PHP 版本,甚至是逐个站点的版本,那就太好了。
更新
今天我又遇到了PHP7运行的问题,尽管我已经禁用了php7.0
apache模块。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
你的问题缺乏重要的细节,所以我将更广泛地回答。
假设你在使用包,有一些重要的细节。
1.Apache2可以配置为使用libapache2-mod-php7.0
包的apache2
SAPI或使用php7.0-fpm
与mod_proxy_fcgi
的FPM SAPI。
2.Ubuntu 16.04的软件库中只有PHP 7.0,你可以使用ppa:ondrej/php
来增加对PHP 5.6的支持,使用类似的命名方案(例如libapache2-mod-php5.6
或php5.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-<ext>
(例如php7.0-mysql
和php5.6-mysql
),但对于外部PECL模块(如APCu,mongodb,...),它只是php-<ext>
(如php-apcu
,php-mongodb
)。 我建议在你的系统上运行apt-cache search php <ext>
来搜索正确的软件包名称,然后再在网上提问。
我认为你应该删除你的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