开发者社区> 问答> 正文

如何在IIS实现多PHP版本共存并同时运行,且都使用80端口?

因为A站需要PHP5.3,B站需要PHP5.4 所以需要两个版本同时运行,并且需要端口都要是80,有好心人给个详细的回答吗?目前使用的是phpstudy的集成环境!

展开
收起
天蝎座de哲 2016-03-19 23:18:56 4878 0
3 条回答
写回答
取消 提交回答
  • 看了半天没看懂,真是烦人

    2019-07-17 18:34:55
    赞同 展开评论 打赏
  • IIS7示例

    假设windows是win7 64位

    下载各个版本的php:

    我们将使用fastcgi模块,直接下载非线程安全(Non Thread Safe)的版本,效率比较高.
    x86是32位的,x64是64位的。

    下载解压放到某个目录,比如:

    E:php7.0.3\

    E:php5.5.30\

    E:php5.2.6\

    php.ini的配置这里就不说了,原来该怎么设置怎么设置。

    步骤

    1.打开IIS 7。 IIS最上层>处理程序映射

    1

    2.右边 添加模块映射

    2

    3.在弹出的窗口中

    路径写*.php 模块选FastCgiModule,可执行文件是php目录下的php-cgi.exe

    名称随便填,为了好记可以填php版本名称,然后确定。

    3

    再添加几次 把多个版本的php都添加进去

    4.由于是点IIS最上层添加,而不是点某个网站添加,所以每个网站目录不会自动生成一个web.config文件。我们可以自己添加一个utf-8编码的web.config文件放到网站目录下,用于调用不同版本的php,不管有没有多个版本的php,都需要这么一个web.config文件,内容如下:

    代码无法成功显示,所以只能截图了:
    5

    主要就是scriptProcessor(脚本处理器)路径不同,决定了调用了不同版本的php。

    也很重要,先把所有版本的php都移除一遍(这里的"name=" 就是之前填的名称)。再add name=,确保调到的是需要的版本。

    注意:如果这边remove只有3个,而实际上你加了5个版本的php的话,为了确保调用到正确的版本,应该把另两个加进去。

    然后就可以了。有新站的话就把这个web.config拷到站点的目录里,再修改下scriptProcessor的路径就可以了。

    我这几个php共用的是一个MySql,版本是5.6.24,能正常使用。

    4

    由于php不同版本间是不怎么向后兼容的,比如php5.6以后不支持mysql_函数连接mysql数据库,只支持mysqli_和pdo_*等,所以多版本共存还是比较有意义的。

    2019-07-17 18:34:55
    赞同 2 展开评论 打赏
  • 不能多个程序占用同一个端口

    2019-07-17 18:34:55
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载