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

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

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

我发现的每个升级 PHP 的指南都是关于更新到最后一个可用版本,但我找不到更新到特定版本的方法。

最简单、最快捷的解决方案是最好的。

请温柔一点,我绝不是 Linux 专家,所以请:最简单、最快捷的解决方案是最好的。

谢谢你!

答案1

更新:自从我写下这个答案以来,Squeeze 已经作为 Debian 6.0 发布。也就是说,它应该被称为稳定的代替测试


如果你想要了解 Debian 中是否有某个特定版本的软件包,请查看套餐页面并使用那里的搜索功能。搜索“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,我建议你升级到lenny's5.2.6

如果你仍然坚持5.2.14我想你应该关注安德鲁的建议

笔记

  • 事实上你仍在使用5.2.0意味着您可能仍在使用更旧的 Debian 版本 Ech...不好
  • Debian 提供了快照服务如果您想要以前打包的不受支持的软件。仅当您确实急需特定版本时才使用此选项。
  • 在那里搜索后发现你的5.2.14从未在 Debian 中打包过(要么是快照服务已关闭,所以没有包含在内)。

答案2

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

您没有提到使用哪种方法,但我们假设使用 MODPHP 的 Apache。

这应该是一个简单的案例,只需前往 php.museum.net 并找到您需要的版本,然后执行以下操作(我脑海中想到的,无需检查):

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

重新创建配置行,您需要做的唯一更改是添加新的前缀

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

然后makemake install

然后,您只需编辑 apache httpd.conf 文件以指向 libphp5 的新位置(只需搜索并替换)。您还会发现将新的 php 位置符号链接到将来升级时不会改变的位置很有帮助:

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

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

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

现在,您不再受 php 分发包版本的束缚,您可以根据需要重新编译以添加扩展,并且您不再依赖第三方为您创建包。

旧系统包很可能仍在路径中,您要么需要记住这一点,并调用新 php 的完整路径,要么修改系统路径的相关部分以在旧版本之前包含新版本。

安德鲁

相关内容