问题描述
最近我将 PHP 升级到 5.4,但它似乎在我身上失败了,因为 APC 无法使用它,但这让我别无选择,只能降级到 5.3,我该怎么做?
我执行了 apt-get remove php5
和 apt-get purge php5
,然后从 apt-get 中删除了 5.4 存储库,然后执行了 apt-get install php5
,它说它正在安装 5.3,然后我重新启动了 php-fastcgi
和 php5-fpm
,但是当我运行 php -v
时,它说是 5.4。
如何从 5.4 降级到 5.3?
我的服务器运行的是 Ubuntu 11.04。
最佳思路
将 PHP 5.4 降级到 5.3
在 Ubuntu 中,降级过程非常混乱。\n这是您可能会发现它有用的脚本(它删除 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
次佳思路
首先执行 apt-cache showpkg php5
。在那里你会看到关于 php5 包的版本和其他信息。
要安装特定版本运行 apt-get install <package name>=<version>
在我的 Ubuntu 11.10 中它将是 apt-get install php5=5.3.6-13ubuntu3.6