我想将我的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议 。
笔记 :
我总是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的相关部分,以便在旧版本之前包含新版本。
安德鲁