在Debian上更新PHP从5.2.0到5.2.14的简单方法是什么?

我想将我的PHP版本从5.2.0更新到5.2.14(或更高版本,但为了兼容性原因,我不想升级到5.3)。

我发现升级PHP的每个指南都是为了更新到最后一个可用的版本,但是我没有find更新到特定版本的方法。

最简单和最快的解决scheme,最好的。

温柔一点,我不是任何方式的Linux专家,所以请:最简单和最快的解决scheme,最好的。

谢谢!

更新 :自从我写这个答案,Squeeze已经被释放为Debian 6.0。 也就是说,它应该被称为稳定而不是testing


如果您想了解Debian中是否有特定版本的软件包,请查看软件包页面并在其中使用searchfunction。 search“php5”给出:

lenny (stable) - 5.2.6.dfsg.1-1+lenny9 squeeze (testing) - 5.3.3-7 sid (unstable) - 5.3.3-7 

没有列出的任何其他php5版本没有(正式)支持,所以而不是5.2.14 ,我build议你升级到lenny的5.2.6

如果你仍然坚持5.2.14我想你应该遵循安德鲁的build议 。

笔记

  • 事实上,你仍然使用5.2.0意味着你可能仍在使用一个更旧的Debian版本,Etch … 不好 。
  • Debian提供了一个快照服务,如果你想要不受支持的历史包装的软件。 只有当你真的渴望一个特定的版本时才使用它。
  • 在那里做一个search表明你的5.2.14从来没有打包在Debian中(或者是快照服务已经closures了,并没有包含在内)。

我总是build议从源代码安装到/ usr / local。 只要您记得您正在运行的是哪个版本,就可以并排运行两个版本。

你没有提到你使用的是哪种方法,但是我们将假定Apache使用MODPHP。

这应该是一个简单的例子,去php.museum.net并find你需要的版本,然后,像下面的东西(我的头,没有检查):

 cd /usr/src wget http://museum.php.net/php5/php-5.2.13.tar.gz tar -xzvf php-5.2.13.tar.gz cd php-5.2.13.tar.gz 

下一行将会让你知道你以前的安装命令是什么,所以你会知道你已经启用了什么扩展。 因为你已经安装了,你应该没有问题的依赖。

 php -i | grep configure 

重新创buildconfiguration行,只需要添加一个新的前缀

 ./configure --prefix=/usr/local/php-5.2.13 <rest of configure as above> 

然后make install

然后,你只需编辑你的Apache的httpd.conf文件,指向libphp5的新位置(只是search和replace)。 你还会发现将新的php位置链接到以后升级时不会改变的东西是有帮助的:

 ln -s /usr/local/php-5.2.13 /usr/local/php 

现在,您的定制版本的PHP将始终在/ usr / local / php中,因为当您构buildphp-5.3.5时,您可以更改符号链接。

剩下的就是重新安装任何PECL / PEAR扩展,使用二进制文件/usr/local/php/bin/pear install <whatever>的完整path,并将你当前使用的php.ini文件复制到新位置/usr/local/php/lib/php.ini

现在,您不再需要绑定到发行版本的php,您可以根据需要重新编译以添加扩展,并且不依赖于第三方为您创build软件包。

旧的系统软件包很可能仍然在path中,您可能需要记住这一点,然后调用新的php的完整path,或修改系统path的相关部分,以便在旧版本之前包含新版本。

安德鲁