»
游客:
注册
|
登录
|
搜索
|
统计
|
喜悦证交所
|
帮助
喜悦国际村
»
喜悦原创
» [原]PHP4、5 共存
[北京]代朋友公司招聘PHP高级程序员多名
上一主题
下一主题
标题: [原]PHP4、5 共存
本帖已经被作者加入个人空间
coolhpy
注册会员
UID 70642
精华 0
积分 141
帖子 128
金钱 141 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-29
来自 浙江
状态 离线
[原]PHP4、5 共存
一、引言
好处就不用偶说了吧?呵呵,真要偶说,偶也说不出个所以然,就当体验下 PHP5 的新特性吧。(虽然5已经出来很久了,但偶还没怎么用过,失败啊~~
)
曾在网上看到一篇类似的文章,其介绍的安装方法相对比较容易懂,也挺方便的,就是以建立两个虚拟机,然后将将 PHP4 和 PHP5 以 CGI 方式分别挂在这两个虚拟机上(不知道有没有记错了,应该是这么个理)。但这样做效率好象不是很高?不过如果只是本机测试的话,问题也不大。应该没人会在服务器上装两个版本的 PHP 吧?呵呵```其实本文所介绍的方法的原理也挺简单的,就是安装两个服务器,反正是为了体验 PHP5 嘛,只要机子跑得动,管他那么多干啥?!呵呵~~。
不知道大家有没有注意到 Apache 的 Service Monitor 是支持多个服务的。那么如果在同一台机子上运行两个 Apache 服务是不是可以让 PHP4 和 PHP5 分别以模块方式运行呢(当然,端口要不同)?另外一个问题,这两个 Apache 服务是否可以访问同一个数据库,从而避免数据库的移植呢?
带着这两个问题,下面开始了我们的探索之旅...
二、下载
apache_2.0.59-win32-x86-no_ssl.msi
http://httpd.apache.org
php-4.4.3-Win32.zip
http://www.php.net/downloads.php
php-5.1.4-Win32.zip
http://www.php.net/downloads.php
mysql-essential-4.1.21-win32.msi
http://dev.mysql.com/downloads/
三、安装
为方便说明起见,下面的安装程序将全部安装到:D:/Server 目录下
因为 PHP4 将被安装在 D:/Server/Apache2/php 目录下,PHP5 将被安装在 D:/Server/Apache2_php5/php 目录下,为了下面的安装方便、顺利进行,建议大家先将设置一下环境变量 PATH,将其值附加
D:\Server\php;D:\Server\php\dlls;D:\Server\Apache2_php5\php;
然后,重启动机器。
如果不这么做的话,就要将大堆的 DLL 文件拷贝到系统目录下,那样会使得系统目录变得非常乱,所以建议大家还是设置一下的好。
3.1 安装MySQL
网上有很多这种资料,大家 baidu 或者 google 一下,有很多的。
3.2 安装第一个服务
3.2.1 Apache的安装
这步没什么好讲的,注意把安装目录只需要设置为:D:/Server 就可以了,安装程序会自动安装到 D:/Server/Apache2 目录下的。
3.2.2 PHP4的安装
将php-4.4.3-Win32.zip解压到目录:D:/Server/Apache2/php下
将目录下文件php.ini-dist重命名为php.ini
安装完成后的目录结构,见附件1。
3.2.3 配置apache以模块方式运行php
在apache的配置文件httpd.conf(D:/Server/Apache2/conf 目录下)中加入以下内容
LoadModule php4_module "D:/Server/Apache2/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/Server/ Apache2/php"
第一个服务安装、配置完成,重启apache。
3.2.4 测试
编写测试文件:test.php,内容如下:
CODE:
[Copy to clipboard]
<?php
phpinfo
();
?>
将文件保存到 D:/Server/Apache2/htdocs 目录下。打开浏览器,在地址栏里输入:
http://localhost/test.php
。如果看到内容,说明 Apache 和 php 没问题,然后找一下有没有 mysql 的一段内容,如果有,说明 mysql 模块安装没问题。
3.3 安装第二个服务
至关重要啊,看仔细了。呵呵```
3.3.1 Apache 的安装
复制目录D:/Server/Apache2 为 D:/Server/Apache2_php5
3.3.2 PHP5 的安装
将目录D:/Server/Apache2/php下所有文件、文件夹删除
将php-5.1.4-Win32.zip解压到目录:D:/Server/Apache2_php5/php下
将目录下文件php.ini-dist重命名为php.ini
将文件php5ts.dll拷贝到 %WINDOWS% 目录下
安装完成后的目录结构,见附件2。
3.3.3 配置 Apache
将配置文件httpd.conf(D:/Server/Apache2_php5/conf 目录下)中所有的
D:/Server/Apache2
查找/替换为:
D:/Server/Apache2_php5
将配置文件中原来的以下内容
LoadModule php4_module "D:/Server/Apache2/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/Server/ Apache2/php"
改为:
LoadModule php5_module "D:/Server/Apache2_php5/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/Server/Apache2_php5/php"
找到:Listen ,将端口改为8080(或者别的,只要没被占用),保存文件。
3.3.4 配置 php
在配置文件 php.ini (D:/Server/Apache2_php5/php 目录下)中找到 extension_dir ,将双引号中的值改为:
D:/Server/Apache2_php5/php/ext
找到:
;extension=php_mysql.dll
将该行前面的 ; 号去掉,保存文件。
3.3.5 配置服务
新建一个文本文件,内容为:
D:/Server/Apache2_php5/bin/Apache.exe -n Apache2_PHP5 -k install
保存为 install.bat 文件,至于存在什么地方就随便了,只要你找的到。
双击执行,窗口会自动关闭,且系统的“服务”中多了一项“Apache2_PHP5”
如果没有出来,多半是配置文件的问题,可以尝试在 DOS 下运行 install.bat 看看错误信息,再进行修改
如果要删除该服务,则另外建一个uninstall.bat文件,内容为:
D:/Server/Apache2_php5/bin/Apache.exe -n Apache2_PHP5 -k uninstall
双击执行就可以了。
当然,如果不喜欢 Apache2_PHP5 这个服务名称,只要改“ -n ”后面、“ -k ”前面的字符就可以了。
第二个服务安装、配置完成,重启 apache。
打开 Apache Service Monitor,这时应该已经有两个服务了,见附件3。
3.3.6 测试
编写测试文件:test.php,内容如下:
CODE:
[Copy to clipboard]
<?php
phpinfo
();
?>
将文件保存到D:/Server/Apache2_php5/htdocs 目录下。打开浏览器,在地址栏里输入:
http://localhost:8080/test.php
。如果看到内容,说明Apache和php没问题,然后找一下有没有mysql的一段内容,如果有,说明mysql模块安装没问题。
四、后记
感谢您花这么多时间看完这篇文章。由于本人表达能力有限,有些地方可能表述的不是很明白,还请大家见谅。十分欢迎对本文表述不正确、不恰当的地方提出您的意见和建议,共同进步。如果您没有配置成功,请回复告诉我。我想说的是这种方法,确实是可行的,我本机上已经成功运行了。运行环境:Windows XP SP2 + Apache2.0.59 + PHP4.4.3 + PHP5.1.4 + MySQL4.1.21。
欢迎大家转载,但请注明出处。
[
本帖最后由 coolhpy 于 2006-8-12 12:25 AM 编辑
]
附件:
您所在的用户组无法下载或查看附件
2006-8-12 12:20 AM
#1
fcicq
新手上路
初级会员
UID 24467
精华 0
积分 21
帖子 587
金钱 20 喜悦币
威望 0
人脉 1
阅读权限 10
注册 2003-11-8
来自 fcicq.net
状态 离线
[推荐阅读]
今天过生日
呵呵.如果用fastcgi的话切换岂不更快...
另外,用一个apache就可以了.根据目录或者virtualhost来安装php也是很好的.
学
科
2006-8-12 09:59 AM
#2
路过
注册会员
初级会员
UID 66167
精华 0
积分 114
帖子 115
金钱 114 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2005-8-24
来自 湖南
状态 离线
[推荐阅读]
村里有无“广州蓝聆科技”的朋友
装两个apache..
2006-8-12 12:43 PM
#3
qh663
版主
中级会员
UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读]
有没有北京朝阳门外的公司招PHPer的?
嗯,关键就在于apache的配置。
五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-8-13 11:56 AM
#4
coolhpy
注册会员
UID 70642
精华 0
积分 141
帖子 128
金钱 141 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-29
来自 浙江
状态 离线
[推荐阅读]
请求帮助
QUOTE:
原帖由
fcicq
于 2006-8-12 09:59 AM 发表
呵呵.如果用fastcgi的话切换岂不更快...
另外,用一个apache就可以了.根据目录或者virtualhost来安装php也是很好的.
fastcgi我还没接触过,能不能介绍一下?
别的朋友介绍一下也行,谢谢````````
2006-8-14 02:19 PM
#5
依龙
注册会员
UID 72462
精华 0
积分 55
帖子 58
金钱 55 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-4-27
来自 广东
状态 离线
[推荐阅读]
sqlite中文乱码,怎么解决?
PHP5不是向下兼容PHP4吗?为什么要装两个?
建站资讯:
http://17admin.com/
2006-8-16 08:51 AM
#6
luzhou
(luzhou)
金牌会员
资深会员
UID 22070
精华 0
积分 1048
帖子 1037
金钱 1048 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2003-7-28
状态 离线
[推荐阅读]
为什么正则过滤不掉下面html内容的指定属性呢?
有创意,但是好像没啥意义?
自在的PHPer~
2006-8-17 07:29 PM
#7
fnet
高级会员
**村大队书记
UID 65788
精华 0
积分 718
帖子 785
金钱 718 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2005-8-12
状态 离线
[推荐阅读]
突然想起来:咋灌水区没个QQ群呢?
我是装了一个apache 2.2 指向 php5
一个apache2.0 指向 php4
共用一个mysql数据库
php4好久没用啦
JAVA
2006-8-18 06:04 PM
#8
nety253
(nety253)
新手上路
初级会员
UID 65224
精华 0
积分 10
帖子 8
金钱 10 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2005-7-21
状态 离线
[推荐阅读]
有没有函数可以完全去除html代码的?
我一般修改httpd.conf LoadModule php5_module (php4_module)的值,然后重启apache
2006-8-20 09:22 PM
#9
可打印版本
|
推荐给朋友
|
订阅主题
|
收藏主题
|
开通个人空间
论坛跳转 ...
技术论坛
> XML/HTML/CSS/Js
> 代码共享
> PHP高级编程
> 建站讨论
> 喜悦原创
> 开源程序论坛
> ECShop官方技术论坛
> LAMP进阶文章
> php基础编程
> 数据库技术
> linux技术
> Windows/软硬件
> JAVA/C/C++
非技术论坛
> 娱乐乐园
> 招聘&求职
> 跳蚤市场
> 联盟项目组
> 广告时间
> 站务问题
Powered by
Discuz!
6.1.0
© 2001-2010
Comsenz Inc.
Processed in 0.029129 second(s), 6 queries
(
冀ICP备05009913号
)
管理员:
sadly 邮箱/MSN: sadly@phpx.com QQ:824008
(长隐)
清除 Cookies
- -
Archiver
-
WAP