在Ubuntu 13.10中将php5降级到5.4.9-4ubuntu2.2

时间:2013-11-01 18:52:30

标签: php ubuntu ubuntu-13.10

我最近更新到Ubuntu 13.10,并且遇到了PHP的版本问题。

我使用过的旧版本的php5,其最新版本将使用它而没有弃用错误 5.4.9-4ubuntu2.2 。 Ubuntu 13.10附带 5.5.3-1ubuntu2

我想知道是否有办法让 5.4.9-4ubuntu2.2 在13.10上安装,而无需求助于编译源包。我认为必须有一个命令行来apt-get来安装旧版本,我只是不知道。

我试过sudo apt-get install php5=5.4.9-4ubuntu2.2但没有成功。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并找到了以下解决方案。我很快就会对它进行测试,并会回复结果,但它看起来很稳固。

# upgrade system, so you can add to ignore all updates later
sudo apt-get update
sudo apt-get upgrade

# remove your php, apache, etc
sudo apt-get purge apache2 php5 libapache2-mod-php5 # add here your server packages

# change repositories to raring  (with backup)
sudo sed -i.bak "s/saucy/raring/g" /etc/apt/sources.list

# update and install server packages
sudo apt-get update
sudo apt-get install apache2 php5 libapache2-mod-php5 phpmyadmin 

# change repositories back to saucy
sudo sed -i "s/raring/saucy/g" /etc/apt/sources.list

# ignore all current upgrades (package hold)
dpkg --get-selections | egrep '^(apache|php)' | sed 's/install/hold/g' | sudo dpkg --set-selections

答案 1 :(得分:0)

E_DEPRECATED条消息信息,不会被视为与警告相同的级别。他们的目的只是告知开发人员他们正在使用的某些功能将在未来的版本中消失。

来自the documentation

  

运行时通知。启用此选项可接收有关在将来版本中无法使用的代码的警告。

虽然这些通知在开发中可能有用,但它们在生产中肯定会被禁用。您可以通过将~E_DEPRECATED添加到php.ini中的error_reporting行,或者将以下行添加到脚本/应用程序中来执行此操作:

error_reporting(error_reporting() ~E_DEPRECATED);

Function documentation

如果我已正确阅读您的评论,这些消息源于您使用自PHP 5.5起已弃用的mysql_*系列函数。这些函数仍在广泛正在使用中,而且从PHP 5.6开始可以删除它们 ,它仍有争议。

简短回答:您不应该降级任何内容,只需稍微调低错误报告设置,这样就不会生成错误。

答案 2 :(得分:0)

我的解决方案:

sudo add-apt-repository 'deb http://cn.archive.ubuntu.com/ubuntu raring main'    #add back raring
sudo apt-get update
sudo apt-get remove php5-cli php5-common
sudo apt-get install php5-cli=5.4.9-4ubuntu2    #specify php version, lookup versions from: apt-cache policy php5-cli
sudo apt-mark hold php5-cli    #hold the version