同时安装这两个版本的 PHP,主要是为了测试程序。在 ubuntu 上安装 PHP 很简单,用 apt-get 一下子就安装好了。为了能同时测试 PHP4 和 PHP5 的程序,我安装了两个 apache,一个是 apache 1.3,另一个 apache 2,用 apache 1.3 跑 PHP4,用 apache 2 跑 PHP5,为了不让他们冲突,我把 apache2 的端口号改成了 81。安装非常简单:
sudo apt-get install apache2 libapache2-mod-php5 php5
这样就把 PHP 5 安装好了,之后修改 apache2 的端口号为 81,并重启该服务。然后安装 PHP4:
sudo apt-get install apache libapache-mod-php4 php4
如果安装好之后,apache 上不能运行 PHP 程序,可能是配置文件的问题,只要把 PHP4 的 apache 模块加载语句添加到 apache 的配置文件里就好了。
上面这些都很容易。下面该安装开发包了,我装这个东西主要是为了测试我写的 xxtea 的 PECL 扩展是否能在这两个版本的 PHP 上都编译通过。顺便安装一个 PHP 的 CLI 版。
sudo apt-get install php4-cli php4-dev
sudo apt-get install php5-cli php5-dev
执行上面两句之后,这两个版本的开发包和命令行版本也就都安装好了,不过有个问题,默认的 php、php-config 和 phpize 等程序的连接都是指向 PHP5 上的,也就是说如果你要编译 PHP 模块,它总是会用 PHP 5 的开发包来编译。所以,我写了一个切换 PHP 版本的脚本,用它可以很方便的在 PHP4 和 PHP 5 之间切换:
switchphp
#!/bin/sh
CURRENT_PWD=`pwd`
cd /etc/alternatives
sudo rm php*
sudo ln -s /usr/bin/php$1 php
sudo ln -s /usr/share/man/man1/php$1.1.gz php.1.gz
sudo ln -s /usr/bin/php-config$1 php-config
sudo ln -s /usr/share/man/man1/php-config$1.1.gz php-config.1.gz
sudo ln -s /usr/bin/phpize$1 phpize
sudo ln -s /usr/share/man/man1/phpize$1.1.gz phpize.1.gz
cd $CURRENT_PWD
CURRENT_PWD=`pwd`
cd /etc/alternatives
sudo rm php*
sudo ln -s /usr/bin/php$1 php
sudo ln -s /usr/share/man/man1/php$1.1.gz php.1.gz
sudo ln -s /usr/bin/php-config$1 php-config
sudo ln -s /usr/share/man/man1/php-config$1.1.gz php-config.1.gz
sudo ln -s /usr/bin/phpize$1 phpize
sudo ln -s /usr/share/man/man1/phpize$1.1.gz phpize.1.gz
cd $CURRENT_PWD
下载以后,放在 /usr/bin 目录下,设置属性为 755,就可以了。使用它切换 PHP 版本时,只需要在命令后面跟上版本号就可以了。例如要切换到 PHP 4,只需要执行:
switchphp 4
就可以了。

