我想将我的 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我想你应该关注安德鲁的建议。
笔记:
答案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>
然后make
&make 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 的完整路径,要么修改系统路径的相关部分以在旧版本之前包含新版本。
安德鲁