Windows系统环境下单Apache实例运行多个PHP版本

我个人机器上环境是基于Apache2.2运行的PHP5.2/4,如你想部署其他版本的PHP或在更多的版本之间切换,同理操作步骤是一致的。

依本人环境为例,机器上已经安装了PHP5.2版本, 所以首先重新创建5.2的服务:

如果你机器上已经运行了Web Server服务,可先暂停并设置为手动执行(因后续我们几乎不再默认运行此服务了)。
编辑httpd.conf配置文件,加入以下形式的内容

<ifdefine php5.2>
 #提供apache调用的php5.2版本dll路径
 LoadModule php5_module "e:/AppServ\php5\php5apache2_2.dll"
 #你的php5.2版本php.ini路径
 PHPIniDir "C:/Windows/php.ini"
</ifdefine>

打开cmd命令行,切换到你的Apache bin目录,执行如下命令
httpd.exe -k install -n Apache_php5.2 -D php5.2
现在你可以重启新的名为Apache_php5.2服务,在PHP中打印phpinfo()来测试运行是否正常
上述过程无误的话,可以继续进行PHP5.4版本的配置了,你会感觉有种熟悉的感觉了

下载PHP5.4的二进制版本,并解压到你希望放置的目录(我机器上路径为:E:/AppServ/php-5.4.37)
再次编辑httpd.conf配置文件,加入以下形式的内容

<ifdefine php5.4>
 LoadModule php5_module "E:/AppServ/php-5.4.37/php5apache2_2.dll"
 #php5.4的ini路径(注意php5.4中将默认用php.ini-production/development两个文件存在,个人已重命名)
 PHPIniDir "E:/AppServ/php-5.4.37/php.ini"
</ifdefine>

打开cmd命令行,创建php5.4服务的apache服务

httpd.exe -k install -n Apache_php5.4 -D php5.4

经过这样的配置,我们就实现了在不同PHP版本之间的切换。为了日常的操作方便,我们还可以编写Bat文件来快速自动切换。

@echo off
@sc query apache_php5.4 | find /i "running" > null
if %ERRORLEVEL% == 0 (
    net stop apache_php5.4
    net start apache_php2.2
) else (
    net stop apache_php2.2
    net start apache_php5.4
)
pause

Now it’s ending!

    原文作者:JohnBeanLee
    原文地址: https://segmentfault.com/a/1190000009822376
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞