好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

不同PHP版本共存的方法,我们需要分两种情况,首

0 .背景

关于这个问题,我们需要分两种情况,首先假设需要不同的 PHP 版本数位两个。

 

第一种情况:两类 php 程序后缀名不同

比如, .php 结尾的程序需要 PHP 4.3.x ,而 .htm1 结尾的程序需要 PH P 4.1.2 ,这种情况可以通过设置不同的 MIME 来解决,这里不讨论。

 

 

第二种情况:两类 php 程序后缀名相同

比如,两部分程序都是以 .htm1 结尾,但是某些目录下面的模块需要用 PH P 4.3.6 解析,其他的都用 PHP 4.1.2 解析。这种情况比较复杂,重点讨论

 

 

1. 主要思路

通过安装配置各两份 Apache 和 PHP 来解决这个问题,分别装在 4 个不同目录下,一份 Apache 监听 80 端口用 PH P 4.1.2 解析 .htm1 ,另一份 Apache 监听 81 端口用 PHP 4.3.6 解析 .htm1 ,这样就解决了这个问题,可能比较麻烦的一点是,一些模块的连接路径需要加上端口号。

 

2. 步骤

a) 先安装带 PH P 4.3.6 版本的 Apache+PHP :

假定我们已将 Apache 和 PHP 的源码包下载至 /usr/local/download/ 里,安装方式如下:

先解包:

tar zvxf apache_ 1.3.31 cd apache_1.3.31

 

编译 apache :

./configure --prefix= /usr/local/apache_a --enable-module=so \

--enable-module=rewrite --enable-shared=max

make

make install ; cd ..

注意以上红色字体部分,这是第一份 apache 的安装位置。

然后编译 ph p 4.3.6

tar zvxf php 4.3.6 .tar.gz cd php4.3.6 ./configure --prefix= /usr/local/php_4.3.6 --with-mysql \ --with-apxs=/usr/local/apache_a/bin/apxs

make

make install

 

拷贝 PHP 的配置文件:

cp php.ini-dist /usr/local/php_ 4.3.6 /lib/php.ini

 

修改 /usr/local/apache_a/conf/httpd.conf

 

查找 <IfModule mod_mime.c>

在此范围添加

AddType application/x-httpd-php .php .htm1

查找 <IfModule mod_dir.c>

在 DirectoryIndex 后添加

index.htm1 index.php

 

 

b) 先安装带 PH P 4.1.2 版本的 Apache+PHP :

进入之前解开的那份 Apache 目录内

cd apache_ 1.3.31

 

编译 apache :

./configure --prefix= /usr/local/apache_b --enable-module=so \

--enable-module=rewrite --enable-shared=max

make

make install ; cd ..

注意以上绿色字体部分,这是第二份 apache 的安装位置。

 

然后编译 ph p 4.1.2

 

tar zvxf php 4.1.2 .tar.gz cd php4.1.2 ./configure --prefix= /usr/local/php_4.1.2 --with-mysql \ --with-apxs=/usr/local/apache_b/bin/apxs

make

make install

 

拷贝 PHP 的配置文件:

cp php.ini-dist /usr/local/php_ 4.1.2 /lib/php.ini

修改 /usr/local/apache_b/conf/httpd.conf

 

查找 Port 80

改为 Port 81

 

查找 <IfModule mod_mime.c>

在此范围添加

AddType application/x-httpd-php .php .htm1

查找 <IfModule mod_dir.c>

在 DirectoryIndex 后添加

index.htm1 index.php

 

 

c) 分别启动两份 Apache

/usr/local/apache_a/bin/apachectl start

/usr/local/apache_b/bin/apachectl start

 

并且这两份 Apache 设置为开机自动启动:

echo [/usr/local/apache_a/bin/apachectl start] >> /etc/rc.d/rc.local

echo [/usr/local/apache_b/bin/apachectl start] >> /etc/rc.d/rc.local

 

 

d) 其他一些需要注意的事项 更多php资料

本机器的防火墙,以及机房的防火墙都要开放 81 端口,相关的链接地址需要修改。

 

查看更多关于不同PHP版本共存的方法,我们需要分两种情况,首的详细内容...

  阅读:39次