最近研究 PHP 5,但是由于 PHP 4 是我的主要开发平台,因此我需要两者共存(windows平台下)。
在网上搜索到一些共存方法,但总是感觉要么太复杂,要么两者切换不便。于是我自己研究,找到了一种较好的方法,运行 2 个 Apache 实例,PHP 4 运行在 80 端口下,PHP 5 运行在 81 端口下。
下载 PHP 4 for Windows Zip 二进制包,解压到任意目录(我解压到 E:\php),将里面的 php.ini-dist 更名为 php.ini。将 php.ini 和 php4ts.dll 复制到 windows 安装目录中。
下载 PHP 5 for Windows Zip 二进制包,解压到任意非 PHP 4 的目录(我解压到 E:\php5),将里面的 php.ini-dist 更名为 php.ini。
下面修改 Apache2 的 httpd.conf 文件。修改的关键是使用 IfDefine 指令:
找到
Code: [Copy to clipboard]
Listen 80
这行,修改为
Code: [Copy to clipboard]
<IfDefine !php=php5>
Listen 80
</IfDefine>
<IfDefine php=php5>
Listen 81
</IfDefine>
在 httpd.conf 的末尾添加
Code: [Copy to clipboard]
# 请注意按实际情况修改目录
<IfDefine !php=php5>
LoadModule php4_module "e:/php/sapi/php4apache2.dll"
</IfDefine>
<IfDefine php=php5>
LoadModule php5_module "e:/php5/php5apache2.dll"
# 在我的电脑上,PHP 5 的 php.ini 在 e:\php5\php.ini 中
PHPINIDir "e:/php5/php.ini"
</IfDefine>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
AddType application/x-httpd-php-source .phps
其他的指令,比如 DirectoryIndex 和 AddDefaultCharset 请自己设置。
下一步是创建两个包含不同运行参数的 Apache 服务。在命令提示符,进入 Apache2 安装目录中的 bin 目录,运行
Code: [Copy to clipboard]
apache -k install -D php=php5 -n Apache2PHP5
这样就创建了一个包含 php5 运行参数的新 Apache 服务,名为 Apache2PHP5。
然后启动 Apache2PHP5 服务并重启 Apache2 服务,您可以到 管理工具->服务 中启动,也可以使用 Apache 2 自带的 Monitor Apache Servers 启动。
访问 http://localhost/ 即使用 PHP 4,访问 http://localhost:81/ 即使用 PHP 5。

|