来源:http://blog.tianya.cn/blogger/post_show.asp?BlogID=327657&PostID=7220921

一山能容二虎―Windws下基于Apache的PHP4和PHP5共存
  
  一山能容二虎
  ―Windws下基于Apache的PHP4和PHP5共存
  
  在学习PHP过程中可能要同时用到PHP4和PHP5,网上也有不少关于二者共存的安装方法,大多是一个安装在IIS下,一个安装在Apache下。下面介绍一下本人的安装方法,自认为比较优化,而且非常方便升级。
    
  为了方便介绍,先介绍一下本人的安装环境:Windows XP Pro SP2,Apache 2.0.55和PHP4.4.1、PHP5.1.1,都安装在D:/(即D区上有以下文件夹d:/apache2、d:/php4、d:/php5),网卡配置两个IP地址192.168.0.2和192.168.0.3(至于如何配置多个IP地址,不是本文介绍重点)。下面以Apache的模块式安装方法为例进行介绍:
  
  1、安装配置Apache 2.0.55服务器。在同意许可协议后会有填写服务器信息的页面,本地调试,前面两个输入 localhost 。编辑httpd.conf 文件,分别定位到ServerName localhost:80和Listen 80,都在前面加#关闭其设置。
  
  2、准备PHP。分别解压下载的PHP压缩包(例如php-5.1.1-Win32.zip),放置到d:/php4和d:/php5。
  
  3、分别配置php.ini。因为有两个版本的PHP,所以要分别配置。分别复制一份php.ini-recommended后重命名为php.in,就放在原路径。
  题外话:过时方法要这样处理,复制php.ini文件至x:/winnt(x:/windows)或apache的安装文件夹,并且copy x: /php/php5ts.dll、php4ts.dll等dll文件到winnt(windows)、或winnt/system32或apache的安装文件夹下。本人强烈推荐你不要这么做,以后升级比较麻烦,下面将给出理由。
  
  4、修改windows path变量。加入 代码:
  d:/php4;d:/php5 
  到path环境变量中,即告诉系统到哪里去查找php5ts.dll等动态链接库文件,所以我们也没有必要将这些dll文件复制到%windir%,所以升级PHP也方便很多,不用去一一删除原来那些文件。至于怎样修改path路径,你可以查看这里。
  
  5、分别修改php.ini。主要修改一下extension_dir和extension_dir。分别在php.ini中找到上面的变量,加入适当的路径。我是这样修改的,PHP4的php.ini中 代码:
  extension_dir = "D:/php4/extensions/" 
  和 代码:
  include_path = "d:/php4/pear;d:/php4/includes" 
  PHP5的php.ini中
  代码:
  extension_dir = D:/php5/ext 
  和 代码:
  include_path = "D:/php5/PEAR;D:/php5/" 
  其实一般来说还需要修改php.ini中的其他不少参数值,例如文件上传临时路径、Session临时路径、邮件设置、扩展模块配置(PHP5中为了支持mysql要去掉以下代码中的;号) 代码:
  ;extension=php_mysql.dll 
  但由于不是本文的重点,所以不详细介绍。
  
  6、修改httpd.conf。在最后加入以下代码:
  代码:
  
  Listen 192.168.0.2:80
  LoadModule php4_module "d:/php4/sapi/php4apache2.dll"
  PHPiniDir "d:/php4/php.ini"
  
  
  
  Listen 192.168.0.3:80
  LoadModule php5_module "d:/php5/php5apache2.dll"
  PHPiniDir "d:/php5/php.ini" 
  
  
  AddType application/x-httpd-php .php .phtml .php3 .php4
  AddType application/x-httpd-php-source .phps 
  
  适当解释一下: 代码:
  PHPiniDir = "d:/php4" 
  即告诉Apache在"d:/php4"路径中查找php.ini文件,这样我们就不必将php.ini复制到其他目录中去,很好地处理了两个php.ini的共存问题。IfDefine是Apache的指令,可以在Apache手册中查找。
  http.conf的其他的指令,比如 DirectoryIndex 和 AddDefaultCharset 请自己设置。
  
  7、创建PHP5的Apache服务。在命令行下执行以下命令: 代码:
  apache -k install -D php5 -n Apache2-PHP5 
  即在windows中创建了php5 运行参数名称为Apache2-PHP5的服务项,可以到 管理工具->服务中启动,也可以使用 Apache 2 自带的 Monitor Apache Servers 启动。可以只运行任意一个PHP,也可以同时运行。
  
  8、调试PHP。用以下地址调试PHP4 代码:
  http://192.168.0.2 
  用以下地址调试PHP5 代码:
  http://192.168.0.3 
  (具体安装时IP地址可自行设置)
  特别提示:因为修改了path路径,所以一定要重启系统方可生效。而且配置了php.ini或http.conf后一定要重启Apache方可生效。(作者:youngong at 163.com)

让php4和php5共存的方法相关推荐

  1. 让你的PHP4和PHP5共存

    来源:http://www.sudu.cn/info/html/edu/20071226/35135.html 一,本文涉及软件极其版本:  windows 2000 professional/xp  ...

  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. iis10.0 php多版本,IIS7 IIS8 中多个版本php共存的方法

    最近又重回.net,用回IIS.然后用到某个php开源项目,需要低版本的php,之前装的一个php5.5不能用,所以决定降一下版本,后面发现其实可以多个版本共用.于是打算分享下.分享之前网上先搜了下, ...

  5. IIS7 中多个版本php共存的方法

    准备工作 由于项目久远,采用的是window+IIS+MySql+php5.4.由于本地使用laravel框架对php版本有要求,中间请教了大佬,想到多个php版本共存的方法.以下是本地测试环境: 一 ...

  6. mysql+1.6安装,CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法

    这篇文章主要介绍了CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享,需要的朋友可以参考下准备篇: 一.配置防火墙,开启80端口.3306端口 Cen ...

  7. python2和python3分别是python的两个版本_Windows下Python2与Python3两个版本共存的方法详解...

    前言 一向用Python 3,最近研究微信公众号开发,各云平台只支持Python 2.7,想用其他版本需要自己搭建环境.而网上又搜不到Python 3开发微信公众号的资料.暂打算先使用Python 2 ...

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

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

  9. Keil-C51 与 Keil -ARM 共存的方法

    本篇为<嵌入式相关>系列博客的第五篇,该系列博客主要记录单片机开发及硬件设计的相关过程,方便以后查阅. Keil-C51 与 Keil -ARM 共存的方法 状况 解决方案1 测试 解决方 ...

最新文章

  1. [转载]签名、加密、证书的基本原理和理解
  2. qtablewidget 数据量大效率很低_让大牛带你走进大数据分析:R基础及应用的潮流尖端,享受RHadoop...
  3. OpenCV训练分类器
  4. linux c之解决array subscript is not integer和AF_NET not undeclared
  5. CCNA-第十二篇-STP+ACL(下)
  6. 争分夺秒:阿里实时大数据技术全力助战双11
  7. css怎么让两个table并排_关于CSS布局
  8. Linux内核分析 - 网络[一]:收发数据包的调用
  9. mysql drop 几十g的表_MySQL Drop 大表的解决方案
  10. 基于模板的通用代码生成器LKGenerator(一)-发布和主要功能介绍
  11. 把自定义类实例存储到LSO
  12. Unity3D之NGUI基础4:NGUI图片管理工具AtlasMaker
  13. “4K”也有真假说法?历数那些年被忽悠的参数
  14. input[type=radio]自定义样式
  15. 课时2 一些默认样式
  16. 四种用电脑给手机发短信方法
  17. 已非昔日阿蒙!21世纪柴油发动机详解
  18. 同步AOKP源码的方法
  19. honor荣耀为什么要研发高端?
  20. 利用python和tushare,统计股市每天上涨的概率

热门文章

  1. 关于下拉菜单和iframe的问题
  2. QT-qevent 事件的accept()和ignore()
  3. 自动化设备的软件框架
  4. php xml 格式化,php简单处理XML数据的方法示例
  5. Android使用adb命令安装应用-连接usb
  6. netmiko 记录日志_netmiko连接网络设备
  7. linux datetime,Python datetime模块示例详解
  8. QEventLoop的简单使用(二)
  9. Android开发之打开指定APP | 打开APP任意页面的方法
  10. Android开发之Git提交Template模板配置