1

我最近更新到 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没有成功。

任何帮助是极大的赞赏。

4

3 回答 3

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
于 2013-11-06T18:20:23.857 回答
0

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

文档中

运行时通知。启用此选项以接收有关在未来版本中不起作用的代码的警告。

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

error_reporting(error_reporting() ~E_DEPRECATED);

函数文档

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

简短的回答:你不应该降级任何东西,只需稍微降低你的错误报告设置,这样它们就不会生成。

于 2013-11-01T22:57:30.307 回答
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
于 2014-05-21T05:26:30.777 回答