如何从PHP 5.4降级到5.3


18

最近,我将PHP升级到5.4,但由于APC不能使用它而使我似乎失败了,但是这让我别无选择,只能降级到5.3,我该怎么做?

我执行了apt-get remove php5apt-get purge php5然后从apt-get中删除了5.4仓库,然后执行了apt-get install php5,它说它正在安装5.3,然后我重新启动php-fastcgiphp5-fpm但是当我运行php -v它时,它说是5.4。

如何从5.4降级到5.3?

我的服务器正在运行Ubuntu 11.04。

Answers:


11

将PHP 5.4降级到5.3

在Ubuntu中,降级过程确实是一团糟。这是您可能会发现有用的脚本(它删除了PHP 5.4并安装了PHP 5.3):

sudo apt-get remove --purge `dpkg -l | grep php | grep -w 5.4 | awk '{print $2}' | xargs`
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php-pear=5.3.10-1ubuntu3.4 php5-curl=5.3.10-1ubuntu3.4 php5-gd=5.3.10-1ubuntu3.4 php5-intl=5.3.10-1ubuntu3.4 php5-mysql=5.3.10-1ubuntu3.4 php5-pspell=5.3.10-1ubuntu3.4 php5-recode=5.3.10-1ubuntu3.4 php5-snmp=5.3.10-1ubuntu3.4 php5-sqlite=5.3.10-1ubuntu3.4 php5-tidy=5.3.10-1ubuntu3.4 php5-xmlrpc=5.3.10-1ubuntu3.4 php5-xsl=5.3.10-1ubuntu3.4

您可以通过命令检查可用版本: apt-cache showpkg php5

安装后,请通过以下命令进行验证: php --version

请小心,不要安装没有指定软件包版本的其他任何软件包(例如php5-xcache),否则apt-get将再次用5.4替换您的PHP实例!

为了防止这种情况的发生,您可以保留这些软件包。

使用dpkg存放软件包

要按dpkg保留软件包,可以执行以下命令:

echo "php5 hold" | sudo dpkg --set-selections

要保存所有PHP软件包,请运行以下命令:

dpkg --get-selections | grep ^php5 | sed s/install/hold/g | sudo dpkg --set-selections

以下命令将向您显示php软件包的持有状态:

sudo dpkg --get-selections | grep ^php

使用能力来保持包裹

您也可以使用aptitude来保存软件包,例如:

sudo aptitude hold php5

取消保留:

sudo aptitude unhold php5

3
在Ubuntu 13.x 5.3.10-1ubuntu3.4中不再存在。
kenorb

如何撤销您的答案呢?
tolgap 2014年

您的意思是回到PHP 5.4或恢复配置文件?配置文件应保持原样(不得删除个人配置)。如果您想回到PHP 5.4,请撤消以取消持有的软件包并再次重新安装php5,例如sudo apt-get install php5,重新安装或删除/安装。
kenorb 2014年

4

首先执行apt-cache showpkg php5。在那里,您将看到有关软件包php5的版本和其他信息。

要安装特定版本,请运行 apt-get install <package name>=<version>

在我的Ubuntu 11.10中 apt-get install php5=5.3.6-13ubuntu3.6


6
如果apt-cache showpkg php55.3.x不再显示怎么办?
kenorb

2

我有一个类似的问题。

我删除了存储库。

您必须记住,它会php -v运行程序php-cli包中的可执行文件,因此您也必须将其删除。

因此,我做了以下操作以回到5.3.10:

sudo apt-get remove php5-cli php5 php5-common
sudo apt-get install php5 php5-mysql php5-curl

现在,这应该显示所需的版本:

php -v

它为我安装了最新的5.6。
JohnnyQ


1

从您描述的步骤开始,您在清除php5.4并删除php5.4存储库后忘记了apt-get更新。

如果您运行以下命令,则在apt源中不再有该存储库:

apt-get remove --purge php5 && apt-get update && apt-get install php5

你应该回到5.3


在Ubuntu 13.x中,默认情况下php5指向5.4.x
kenorb 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.