让你的PHP4和PHP5共存

好处不多说了,:D 坏处嘛…是CGI方式的(引用官方原文:we consider installing
PHP like this suicidal.)

PHP4和PHP5共存于一系统

通过一个小时的研究和设置.实现了最新的 PHP 5.0 + MYSQL 5.0 + WIN2003.
个人认为还是有必要写个教程出来.因为很多方面和老版本的不尽相同.
说实话自己也是查阅了很多官方文档才解决了很多怪异问题.

废话少说,直接看方法:

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

=========================

一,本文涉及软件极其版本:

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

相关软件均可以在 WWW.SKYCN.NET 下载.

Windows 2000 Professional/XP

一,本文涉及软件极其版本:Windows 2000 Professional/XPApache 1.3.28 FOR
WINMicrosoft Internet Server Information, PHP 5.0.0 betaMySQL 3.23.57

MYSQL 5.0 FOR WINDOWS PHP 5.0 FOR WINDOWS PHPMYADMIN WINDOWS SERVER 2003

Apache 1.3.28 FOR WIN

二,大致步骤:

=========================

Microsoft Internet Server Information(IIS6)

1.分别安装各版本的PHP

首先安装 MYSQL .本来以为新版本的安装界面应该会花哨点.
但是仍然只看到老土的海豚.除了安装时间比 4.0 长.当然咯.因为 5.0 比 4.0
体积大很多.

PHP 4.3.3(4.3.5), PHP 5.0.0 beta(5.0.0RC1)

2.安装APACHE,设置APACHE 和 PHP

推荐安装在独立的 NTFS 分区上.比如我服务器的 F盘.只放服务器软件. 路径为:
F:MYSQL

MySQL 3.23.57(3.23.58)

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

然后进入 F:MYSQLBIN 鼠标双点 winmysqladmin.exe
首次运行会提示输入超级用户和密码.就输入 root 密码 root
注意啊.如果是对外服务器请设置超级复杂.比如 Wjwsfjn29szjwh~mysql
翻译过来就是: 我叫魏舒芬.今年29岁至今未婚.

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

4.安装MYSQL

到这里.MYSQL就安装完毕了.如果不明白请参看深空同学的相关文章.

1.分别安装各版本的PHP

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

=========================

2.安装APACHE,设置APACHE 和 PHP

澳门新葡亰娱乐官网,C:/httpd/ApacheC:/httpd/MySQLC:/httpd/PHP4C:/httpd/PHP5C:/httpd/php-includesC:/httpd/phpMyAdminC:/httpd/tmpC:/httpd/www

下面安装 PHP 5.0 其实没什么安装不安装的.解压缩文件.推荐放到 路径为:
F:PHP

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

到C:/WINNT/system32/drivers/etc(XP是C:/WINDOWS/system32/drivers/etc)文件夹下,找到hosts文件,在底下增加

到这里就应该进入关键步骤了. 首先复制 PHP 目录下的 Php.ini-dist 到
C:Windows 并将文件名修改成为 Php.ini

4.安装MYSQL

127.0.0.1 php4 # Waiter PHP 4 127.0.0.1 php5 # Waiter PHP 5

COPY F:PHPPhp.ini-dist C:Windows Ren Php.ini-dist Php.ini

三,安装前准备:

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

如果是 WINDOWS 2000 就是: C:WINNT 如果是 WIN9X / 2003 就是: C:Windows

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

四,安装各版本PHP假设你已经下载你需要的各版本PHP…这里以4.3.3和5.0.0-beta为例…(4.3.5vs5.0.0RC1我也试了.如果和你环境不一样不要怪我
:

然后复制 PHP 目录下 DLLS 目录里的所有文件到 SYSTEM32 目录.

C:/

㈠安装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

COPY F:PHPdlls*.* C:WindowsSystem32

C:/

㈡安装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

如果是 WINDOWS 2000 就是: C:WINNTSystem32 如果是 WIN9X / 2003 就是:
C:WindowsSystem32

C:/

五,配置APACHE打开C:/httpd/Apache/conf/httpd.conf,在底下追加一些设置:

继续.复制PHP目录下 php4ts.dll 文件到 System32 目录里.

C:/

ServerAdmin test@php433 ServerName php4 ServerAlias www DocumentRoot
“C:/httpd/www” Options Indexes FollowSymLinks MultiViews AllowOverride
None Order allow,deny Allow from all ScriptAlias /php4/ “C:/httpd/php4/”
AddType application/x-httpd-php .php Action application/x-httpd-php
“/php4/php.exe”

COPY F:PHPphp4ts.dll C:WindowsSystem32

C:/

ServerAdmin test@php500 ServerName php5 DocumentRoot “C:/httpd/www”
Options Indexes FollowSymLinks MultiViews AllowOverride None Order
allow,deny Allow from all ScriptAlias /php5/ “C:/httpd/php5/” AddType
application/x-httpd-php .php Action application/x-httpd-php
“/php5/php-cgi.exe”

=========================

C:/

六,关于PHP5和MYSQLMYSQL的安装,我就不多说了,自己下了装吧…你可以通过修改php.ini,来加载MYSQL…

到这里复制工作全部完成.下面修改 C:WindowsPhp.ini 文件.

C:/

七,测试…启动APACHE(如果httpd.conf配置有错,会有出错提示…),然后地址栏输入
😀 😀 😀
[注3]相信对广大PHP程序员,以及想学PHP5又不想放弃PHP4的同志来说,这会是个不错的方法.ENJOY
IT!

请注意.5.0的版本修改与4.0并不完全相同.需要注意的如下.

C:/

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

查找 extension_dir 字串.修改为你 PHP 目录里 extensions 的路径.

到C:/WINNT/system32/drivers/etc(XP是C:/WINDOWS/system32/drivers/etc)文件夹下,找到hosts文件(没有?!
@_@ 那么…. 😀 ),在底下增加

如果你按上面方法有问题,可以尝试其他途径,这里罗列一些国外的成功案例:

; Directory in which the loadable extensions (modules) reside.
extension_dir = F:PHPextensions

127.0.0.1 php4 # Waiter PHP 4

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

相关官方技术资料:

127.0.0.1 php5 # Waiter PHP 5

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

Edit your php.ini file:

吼吼…如果你懂~~自己修改其他名字吧 8D 我们继续…

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

You will need to change the extension_dir setting to point to your
php-install-dir, or where you have placed your php_*.dll files. ex:
c:php

保存文件…

其实,如果大家仔细阅读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 2) in your %SYSTEMROOT% directory.

If you are using OmniHTTPd, do not follow the next step. Set the
doc_root to point to your webservers document_root. ex: c:apachehtdocs
or c:webroot

四,安装各版本PHP

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

Choose which extensions you would like to load when PHP starts, noting
that several extensions are already built into the Windows release, see
the section about Windows extensions for details of the built-in
extensions. You can uncomment the: extension=php_*.dll lines in
php.ini to load these extensions.

假设你已经下载你需要的各版本PHP…(哪下载?? 😛 自己找吧…)

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

Note that on a new installation it is advisable to first get PHP working
and tested without any extensions before enabling them in php.ini.

这里以4.3.3和5.0.0-beta为例…(4.3.5vs5.0.0RC1我也试了.如果和你环境不一样不要怪我
🙁 ,大同小异,自己琢磨吧) 😉

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

On PWS and IIS, you can set the browscap.ini to point to:
c:windowssysteminetsrvrowscap.ini on Windows 9x/Me and
c:winntsystem32inetsrvrowscap.ini on NT/2000/XP Server.

㈠安装PHP4.3.3

PHP5时代越来越近,赶紧深入了解去吧…

More information on the capabilities of browscap can be found here:

①解压缩下载文件(:) 地球人都知道)

————————————————————————-[注1]:本来想写FOR
IIS的…可实在不想在自己机器上装个没用的东西,so…标题列了,却放弃写了…对部分看客说声抱歉…

Note that the mibs directory supplied with the Windows distribution
contains support files for SNMP. This directory should be moved to
DRIVE:usrmibs (DRIVE being the drive where PHP is installed.)

②将PHP4.3.3中的php.exe, php.ini-recommended, phpmbed.lib, php4ts.dll,
php4ts.lib, dll/*.* 和 extensions/*.* 拷贝到C:/

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

然后与 PHP 4.0 不同的是.需要修改 Php.ini 文件里的如下内容: 查找
cgi.force_redirect 字串.默认值为1.将其修改为0.并取消前面的;号.

③修改php.ini-recommended:

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

即:

extension_dir = quot;C:/;

相关文章• 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 – 06-25 07:11 pm – 点击: 4488

; cgi.force_redirect is necessary to provide security running PHP as a
CGI under ; most web servers. Left undefined, PHP turns this on by
default. You can ; turn it off here AT YOUR OWN RISK ; **You CAN
safely turn this off for IIS, in fact, you MUST.** cgi.force_redirect
= 0

cgi.force_redirect = 0

切记如上修改的地方.否则PHP 5.0是无法运行的.会有如下提示.

保存为php.ini(就在C:/下)

Security Alert! The PHP CGI cannot be accessed directly.

㈡安装PHP5.0.0BETA

相关官方技术资料:

①解压缩…

!NOTE!: Since 4.1.2, the php.ini setting cgi.force_redirect defaults to
1 which effectively prevents the cgi from working within IIS. You need
to set up at least a minimal php.ini file with the following directive:

②将php.exe, php.ini-recommended, phpmbed.lib, php4ts.dll, php4ts.lib,
dll/*.* 和 extensions/*.*拷贝至C:

cgi.force_redirect = 0

如果是PHP5.0.0RC1,那么没有dll和extensions目录,只有ext–就是extensions拉

If it doesnt work immidiately, make sure you have the php.ini file in
the right place (%SYSTEMROOT%php.ini).

如果…你是mysql的忠实用户,别忘了把libmysql.dll也拷过去[注2].

接下来修改 Php.ini 文件关于 MYSQL 5.0 的设置.

③修改php.ini-recommended:

查找 [MySQL] 字段内的内容.修改如下.

extension_dir = quot;C:/;

mysql.default_port = 3306 // 这里是MYSQL的端口.

cgi.force_redirect = 0

mysql.default_host = localhost // 这里是本地主机.

如果是PHP4.0.0RC1,那么extension_dir = quot;C:/;

mysql.default_user = root // 这里是用户

保存为php.ini(就在C:/下)

mysql.default_password = Wjwsfjn29szjwh~mysql // 这里是密码

五,配置APACHE

修改到这里就可以让 Php 与 MYSQL 关联了. 最后启动 PHP 对 MYSQL 模块支持.

打开C:/,在底下追加一些设置:

查找 extension=php_mysql.dll 字串.删除掉前面的 ; 号

VirtualHost *:80ServerAdmin test@php433ServerName php4ServerAlias  quot;C:/;Directory quot;C:/;Options Indexes FollowSymLinks MultiViewsAllowOverride NoneOrder allow,denyAllow from all/DirectoryScriptAlias /php4/ quot;C:/;AddType application/x- .phpAction application/x- quot;/php4/php.exequot;/VirtualHost

VirtualHost *:80ServerAdmin test@php500ServerName php5DocumentRoot quot;C:/;Directory quot;C:/;Options Indexes FollowSymLinks MultiViewsAllowOverride NoneOrder allow,denyAllow from all/DirectoryScriptAlias /php5/ quot;C:/;AddType application/x- .phpAction application/x- quot;/php5/php-cgi.exequot;/VirtualHost

extension=php_mysql.dll

六,关于PHP5和MYSQL

请注意.如果不启动 PHP 对 MYSQL 模块支持.将无法使 PHPMYADMIN
正常工作.将提示:

MYSQL的安装,我就不多说了,自己下了装吧…(跳过这段没意见吧? )

cannot load MySQL extension, please check PHP Configuration 无法装入
MySQL 扩展,请检查 PHP 的配置。

你可以通过修改php.ini,来加载MYSQL… (难过…)

相关官方技术资料:

七,测试…

To connect to a MySQL server, PHP needs a set of MySQL functions called
“MySQL extension”. This extension may be part of the PHP distribution
(compiled-in), otherwise it needs to be loaded dynamically. Its name is
probably mysql.so or php_mysql.dll. phpMyAdmin tried to load the
extension but failed.

启动APACHE(如果配置有错,会有出错提示…),然后地址栏输入和就分别启动PHP4和PHP5咯…爽吗?
😀 😀 😀 [注3]

=========================

相信对广大PHP程序员,以及想学PHP5又不想放弃PHP4的同志来说,这会是个不错的方法.ENJOY
IT!

到这里应该就没有很大问题了.如果有配置基础的朋友应该完全可以理解了.
本人在实际配置的时候也遇到了很多问题.最后都是耐心查询官方文档得到了解决.

总结一下:

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

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图