如何从 PHP 5.4 降级到 5.3

如何从 PHP 5.4 降级到 5.3

最近我将 PHP 升级到了 5.4,但是由于 APC 无法运行,升级似乎失败了,不过我别无选择,只能降级到 5.3,我该怎么做呢?

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

我怎样才能从 5.4 降级到 5.3?

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

答案1

将 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 保存软件包

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

sudo aptitude hold php5

取消保留:

sudo aptitude unhold php5

答案2

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

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

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

答案3

我遇到了类似的问题。

我删除了存储库。

您必须记住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

答案4

从您描述的步骤来看,您在清除 php5.4 并删除 php5.4 repo 后忘记了 apt-get update。

假设你的 apt 源中不再有 repo,如果你运行:

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

你应该回到 5.3

相关内容