来源:http://www.sudu.cn/info/html/edu/20071226/35135.html

一,本文涉及软件极其版本: 
windows 2000 professional/xp 
apache 1.3.28 for win 
microsoft internet server information(iis6) 
php 4.3.3(4.3.5), php 5.0.0 beta(5.0.0rc1) 
mysql 3.23.57(3.23.58)

二,大致步骤:(二,三任选)

1.分别安装各版本的php

2.安装apache,设置apache 和 php

3.安装iis,并在iis中设置php各版本[注1]

4.安装mysql

三,安装前准备: 
将所须程序copy至各文件夹,本文按照以下目录结构进行,你可以根据需要自行修改^^:

c:/httpd/apache 
c:/httpd/mysql 
c:/httpd/php4 
c:/httpd/php5 
c:/httpd/php-includes 
c:/httpd/phpmyadmin 
c:/httpd/tmp 
c:/httpd/www

到c:/winnt/system32/drivers/etc(xp是c:/windows/system32/drivers/etc)文件夹下,找到hosts文件(没有?! @_@ 那么.... :d ),在底下增加

127.0.0.1 php4 # waiter php 4 
127.0.0.1 php5 # waiter php 5

吼吼...如果你懂~~自己修改其他名字吧 8d 我们继续... 
保存文件...

四,安装各版本php 
假设你已经下载你需要的各版本php...(哪下载?? :p 自己找吧...) 
这里以4.3.3和5.0.0-beta为例...(4.3.5vs5.0.0rc1我也试了.如果和你环境不一样不要怪我 :( ,大同小异,自己琢磨吧) ;)

㈠安装php4.3.3 
①解压缩下载文件(:) 地球人都知道) 
②将php4.3.3中的php.exe, php.ini-recommended, phpêmbed.lib, php4ts.dll, php4ts.lib, dll/*.* 和 extensions/*.* 拷贝到c:/httpd/php4 
③修改php.ini-recommended: 
extension_dir = "c:/httpd/php4/extensions/" 
cgi.force_redirect = 0 
保存为php.ini(就在c:/httpd/php4/下)

㈡安装php5.0.0beta 
①解压缩... 
②将php.exe, php.ini-recommended, phpêmbed.lib, php4ts.dll, php4ts.lib, dll/*.* 和 extensions/*.*拷贝至c:httpdphp5 
如果是php5.0.0rc1,那么没有dll和extensions目录,只有ext--就是extensions拉 
如果...你是mysql的忠实用户,别忘了把libmysql.dll也拷过去[注2]. 
③修改php.ini-recommended: 
extension_dir = "c:/httpd/php5/extensions/" 
cgi.force_redirect = 0 
如果是php4.0.0rc1,那么extension_dir = "c:/httpd/php5/ext/" 
保存为php.ini(就在c:/httpd/php5/下)

五,配置apache 
打开c:/httpd/apache/conf/httpd.conf,在底下追加一些设置:

<virtualhost *:80> 
serveradmin test@php433 
servername php4 
serveralias www 
documentroot "c:/httpd/www" 
<directory "c:/httpd/www"> 
options indexes followsymlinks multiviews 
allowoverride none 
order allow,deny 
allow from all 
</directory> 
scriptalias /php4/ "c:/httpd/php4/" 
addtype application/x-httpd-php .php 
action application/x-httpd-php "/php4/php.exe" 
</virtualhost>

<virtualhost *:80> 
serveradmin test@php500 
servername php5 
documentroot "c:/httpd/www" 
<directory "c:/httpd/www"> 
options indexes followsymlinks multiviews 
allowoverride none 
order allow,deny 
allow from all 
</directory> 
scriptalias /php5/ "c:/httpd/php5/" 
addtype application/x-httpd-php .php 
action application/x-httpd-php "/php5/php-cgi.exe" 
</virtualhost>

六,关于php5和mysql 
mysql的安装,我就不多说了,自己下了装吧...(跳过这段没意见吧? ) 
你可以通过修改php.ini,来加载mysql... (难过...)

七,测试... 
启动apache(如果httpd.conf配置有错,会有出错提示...),然后地址栏输入http://php4和http://php5就分别启动php4和php5咯...爽吗? :d :d :d [注3] 
相信对广大php程序员,以及想学php5又不想放弃php4的同志来说,这会是个不错的方法.enjoy it!

总结一下: 
其实思路很简单,利用cgi方式实现php4和php5的共存.我找了很多资料,这个算最简单最实用了.不过只适合大家本机玩,千万别在服务器上这么搞...否则~后果自负...别找我

如果你按上面方法有问题,可以尝试其他途径,这里罗列一些国外的成功案例: 
http://wiki.coggeshall.org/37.html 
http://www.circle.ch/blog/p1387.html 
http://www.schlitt.info/applications/blog/..._5_prallel.html

有兴趣的可以继续学习下...

继续关于本方案的一点重要补充:

php4和php5共存,存在一个php.ini冲突的问题... 
大家都知道,一般做法是需要将php.ini复制到系统文件夹下(c:winnt or c:windows).如果同时安装多版本,势必会造成冲突...

其实,如果大家仔细阅读php安装文档,会有如下一段文字: 
does where c i cut to could the php.ini? the php.ini files is only searched in two places: 1) in your apache installation directory (e.g. c:apacheapache) 2) in your %systemroot% directory.

而我们正是使用的第一种方式...(是不是官方早料到有这种情况??god knows...)

上两张安装后的 phpinfo 的图:

我在上述环境下测试成功了...如果你遇到困难可以留言或到讨论区一起讨论。

结语: 
偶不太会写教程之类的东东...自己看了懂,却不是很容易让别人理解,大家只好忍让了. 
虽然过程比较简单,不过费了我不少时间(有两个地方...我找的资料有误,把我害惨了),这个大a作证拉...( :d 大a睡了一觉起来上厕所,我还在...此处少儿不宜,删去500字)

php5时代越来越近,赶紧深入了解去吧...

------------------------------------------------------------------------- 
[注1]: 
本来想写for iis的...可实在不想在自己机器上装个没用的东西(对我而言 :( ),so...标题列了,却放弃写了...对部分看客说声抱歉...

[注2]: 
这里说点题外话:在php5.0.0rc1中,不知道大家看到ext下有个mysqli.dll,以及php.exe同层目录下有个libmysqli.dll么?奇怪这是干嘛的?其实这是官方针对mysql的新版(4.1.0好象是...吧)的一个升级,对于高版本mysql玩家可以试试...据说支持mysql一些新特性哦

[注3]: 
在启动apache时,如果看到什么"overlap on port 80"...不要着急,在httpd.conf中,把namevirtualhost *:80前的注释去了即可...(这个地方难了我好长时间...只怪apache设置不熟悉.不过这次算好好把apache的设置看了遍,还是有收获)

让你的PHP4和PHP5共存相关推荐

  1. 让php4和php5共存的方法

    来源:http://blog.tianya.cn/blogger/post_show.asp?BlogID=327657&PostID=7220921 一山能容二虎―Windws下基于Apac ...

  2. vista 中php4, php5 共存

    由于有些开源PHP产品需要PHP4,因为不得不安装这个版本,如OSC2.1:而有些开源产品则使用PHP5,如wikipedia,因此为了同时开发 PHP4或PHP5的软件,则需要同时安装这两个版本的东 ...

  3. php4和php5的区别,php4和php5区别是什么

    php4和php5区别是什么 导语:PHP4和PHP5,已经是两个版本了.下面的是百分网小编为大家搜集的php4和php5区别,供大家参考. PHP5 中的对象已经进行了较系统.较全面的调整,现在的样 ...

  4. PHP5比PHP4,php4和php5的配置异同比较

    技术文章 配置php4或者php5的过程中,php4,5的配置的步骤大致一样的,但是配置内容有一些差别.在LINUX等环境下编译,一般来说,只要编译的选项正确,配置也就正确了:在windows配置则需 ...

  5. php5 php4,自动实现php4和php5环境的切换......

    因为php4早就end了,所以是有必要切换到php5的了,所以有时调试需要整合一下了 做了一个脚本,让他们批处理一下就能自动切换了,方便的说 环境: window XP SP2 +apache2.2. ...

  6. 谢华亮 php,谢华亮: PHP4和PHP5性能测试和对比

    PHP 4到今年年底PHP Group将不再对其进行支持了,所以为了让大家更有信心的转移到PHP 5平台上,我特别做了这个测试,看看我们PHP 4.x 是否真的性能比我们的PHP 5.x要好,测试结果 ...

  7. php5向下兼容php4吗,PHP5与PHP4的区别小议

    PHP5与PHP4的区别小议: 一.未100%向下兼容 在php5中尽管大部分PHP4的代码应该不用修改就能运行,还是应该留意以下不向下兼容的改变: 有了一些新关键字. strrpos() 和 str ...

  8. php4和php5的区别,什么是PHP 4和PHP 5之间的区别是什么-php是什么文件

    ? 尽管PHP 5是故意设计成兼容尽可能与以前的版本,也有一些显著的变化. 其中的一些变化包括: · 一个新的OOP模型基础上,Zend引擎2.0 · 改进MySQL支持的一个新推广 · 内置SQLi ...

  9. GreenAMP下载:可将Apache MySQL PHP安装成绿色软件

    前天我在chin.blogchina.com发表了"Windows下把Apache,MySQL,PHP安装为绿色软件" 一文,承蒙各位网友错爱(好多感兴趣的网友纷纷留言希望提供下载 ...

最新文章

  1. r语言和python-Python和R语言的区别_Python与R的区别和联系
  2. 【笔记】windows10安装linux双系统教程(可能是现今最简单方法)
  3. hdu5491(2015合肥网络赛H题)
  4. (转)yi_meng linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
  5. 算法--生成可重集排列
  6. 【highlight】highlight 动态添加代码,样式失效
  7. javascrip之prototype
  8. 【调用接口实现自动抠图】
  9. led时间代码html,LED旋转时钟制作(有源代码)
  10. 堪萨斯州立大学计算机科学,堪萨斯州立大学有哪些专业?
  11. Katana中设置全局变量
  12. SQLserver 报错RegCreateKeyEx() 返回了错误 5,“拒绝访问。” (.Net SqlClient Data Provider)错误号: 22002 严重性: 16 状态: 1
  13. win10鼠标右键问题,导致桌面刷新重启,资源管理器explorer重启,文件夹闪退,应用管理员模式无法运行等等
  14. 京东商城总架构师刘海锋:世界上本没有架构,建设的需求多了便有了架构
  15. 避障机器人程序c语言,移动机器人的避障实验设计+源程序+流程图.doc
  16. 什么是wildfly
  17. word 多级列表的标题操作
  18. 17、前端开发:HTML知识补充——表格标签
  19. HX711称重模块程序
  20. #创新应用#图吧导航:高品质的导航类应用!

热门文章

  1. MFC中添加的ID资源号提示找不到声名问题
  2. Qt中基类widget的各个事件函数中包含了ignore()的调用
  3. C#中发送消息给指定的窗口到消息循环
  4. QT 调用 DLL 的三种方法
  5. SetTimer和KillTimer详解
  6. C#增删改查操作Access数据库之二(数据库的增加)
  7. 多线程—synchronized及同步器
  8. swift5表情键盘项目封装
  9. 计算机专业颈椎有问题,出现这4个表现,你的颈椎病已经很严重了!上班族尤需警惕_39健康网...
  10. codis配置_分布式缓存Codis集群安装手册