最近我将 PHP 升级到了 5.4,但是由于 APC 无法运行,升级似乎失败了,不过我别无选择,只能降级到 5.3,我该怎么做呢?
我执行了apt-get remove php5
,apt-get purge php5
然后从 apt-get 中删除了 5.4 repo,然后执行apt-get install php5
,它说正在安装 5.3,我重新启动了php-fastcgi
,php5-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