PHP4和PHP5共存于一系统

2016-02-19 09:02 3 1 收藏

下面是个超简单的PHP4和PHP5共存于一系统教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - Web开发 】

PHP4和PHP5共存于一系统

在其它地方看到的一篇文章,老了一点,这两天也正想找个时间来用IIS+APACHE使用不同端口来做两个PHP共存....到时再发出来'罢..看原文吧

-------------------------------------------------------------
好处不多说了,:D 坏处嘛...是CGI方式的(引用官方原文:we consider installing PHP like this suicidal.--esayr注:E文不好?呵,最后一个是自杀的意思)
废话少说,直接看方法:

一,本文涉及软件极其版本:
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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

到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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

吼吼...如果你懂~~自己修改其他名字吧 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...)

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

结语:
偶不太会写教程之类的东东...自己看了懂,却不是很容易让别人理解,大家只好忍让了.
虽然过程比较简单,不过费了我不少时间(有两个地方...我找的资料有误,把我害惨了),这个大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的设置看了遍,还是有收获)


相关文章• apache 2.2.2 + PHP5.1.4 不能运行的解决办法. - 05-11 02:07 pm - 点击: 12651• PHP5.1.3发布 - 05-03 09:41 pm - 点击: 1860• PHP5学习笔记 -- Classes and Objects in PHP5 - 09-05 02:13 pm - 点击: 5776• 从PHP4.3.*升级到PHP5.0.0 - 08-09 01:49 am - 点击: 5136• php4和php5的配置异同比较 - 08-01 06:25 pm - 点击: 4260• redhat 9下配置APACHE2.0.50 +PHP5+MYSQL4.0.20+GD库 - 07-29 02:00 am - 点击: 13784• php5 for windows 安装详解 - 07-14 10:33 pm - 点击: 13370• PHP5正式版昨日发行--附PHP研究手册 - 07-14 10:04 pm - 点击: 6069• 为面向对象而生的PHP5 之二 - 06-25 07:13 pm - 点击: 3749• 为面向对象而生的PHP5 (1) - 06-25 07:11 pm - 点击: 4488

来源:https://www.tulaoshi.com/n/20160219/1589276.html

延伸阅读
标签: PHP
抽象类 抽象类不能被实例化。 抽象类与其它类一样,允许定义变量及方法。 抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。 例六:抽象类 <?php abstract class foo { protected $x; abstract function display(); function setX($x) { $this-x = $x; } } class foo2 extend...
标签: PHP
  php4比php3新加了session的支持。稍微用了一下,对其函数接口,内部机制,   应用的方便性做了大概的了解。   session的意义大家都应该清楚,一个session可以包括数次http的请求和应答,   比如我们用163.net,从login到logout或者超时就作为一个session,session   的唯一标识一般是在系统内...
标签: PHP
一、输出信息控制函数  这些函数可以让你控制你的脚本输出的内容.可以用于许多不同的情况,特别是在你的脚本已经输出信息后需要发送文件头新的情况.  输出控制函数不对使用  header()  或  setcookie()  发送的文件头信息产生影响,只对那些类似于  echo()  和  PHP  代码...
标签: PHP
“所有的php5内容管理系统将去向何方?”Lukas Kahwe Smith在他最新的博客公告栏中这样问到。他说,PHP4内容管理系统及其特性仍然超过着PHP5的内容管理系统。 Lukas认为PHP4内容管理系统的特性太多是个问题。这些特性一个接一个的无限制增多。而且由于它们的数量,使得在特性方面对它们做任何细微的修改都将付出巨大的努...
标签: PHP
转自:http://blog.csdn.net/ezdevelop/archive/2005/07/08/417458.aspx 最近在做一个项目,有大量的数据需要实时更新,同时要求多台服务器可共享这些数据,类似于股票系统,因此决定使用B/S+中间层三层架构,其中使用Web Services作为中间层,原因在于,从长远角度来考虑,以后可能会增加C/S结构,所以采用Web Services是个绝...

经验教程

388

收藏

94
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部