0.背景
关于这个问题,我们需要分两种情况,首先假设需要不同的PHP版本数位两个。
第一种情况:两类php程序后缀名不同
比如,.php结尾的程序需要PHP 4.3.x,而.htm1结尾的程序需要PHP 4.1.2,这种情况可以通过设置不同的MIME来解决,这里不讨论。
第二种情况:两类php程序后缀名相同
比如,两部分程序都是以.htm1结尾,但是某些目录下面的模块需要用PHP 4.3.6解析,其他的都用PHP 4.1.2解析。这种情况比较复杂,重点讨论
1.主要思路
通过安装配置各两份Apache和PHP来解决这个问题,分别装在4个不同目录下,一份Apache监听80端口用PHP 4.1.2解析.htm1,另一份Apache监听81端口用PHP 4.3.6解析.htm1,这样就解决了这个问题,可能比较麻烦的一点是,一些模块的连接路径需要加上端口号。
2.步骤
a) 先安装带PHP 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的安装位置。
然后编译php 4.3.6
tar zvxf php4.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) 先安装带PHP 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的安装位置。
然后编译php 4.1.2
tar zvxf php4.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端口,相关的链接地址需要修改。
|