IIS7 IIS8 中多个版本php共存的方法

原文地址:

https://blog.cozof.com/pieces/54.shtml

最近又重回.net,用回IIS。然后用到某个php开源项目,需要低版本的php,之前装的一个php5.5不能用,所以决定降一下版本,后面发现其实可以多个版本共用。于是打算分享下。分享之前网上先搜了下,有发现有人实现了,但方法不同,所以还是分享下:

我的电脑是win7 64位

php可以在官网下载http://windows.php.net/download/,php 5.4之前的版本似乎没有了,旧版本我是其它地方找的。

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

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

E:\php7.0.3\

E:\php5.5.30\

E:\php5.2.6\

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

步骤

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

2.右边 添加模块映射

3.在弹出的窗口中

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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <remove name="php5.5.30" />
            <remove name="php7.0.3" />
            <remove name="php5.2.6" />
            <add name="php5.2.6" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\php7.0.3\php-cgi.exe" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
    </system.webServer>
</configuration>

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

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

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

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

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

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

时间: 2024-08-10 02:11:21

IIS7 IIS8 中多个版本php共存的方法的相关文章

在Anaconda中实现多版本Python共存

检查conda版本 在Windows的cmd下输入 conda --version 如图: 其中本机Anaconda自带的Python3.6版本的. 在conda中创建一个名为python27的环境,并下载对应版本的Python2.7 cmd下输入 conda create --name python27 python=2.7 如图: 激活python27 cmd下输入 activate python27 如图: 在python27的环境下下载Spyder cmd下输入 conda instal

pyenv安装与使用-多版本python共存解决方法

说明: 由于centos或者RHEL操作系统自带的python一般都比较低,centos6 自带的python版本都是2.6.6,但是现在一般python使用的版本都是2.7版本,以前总在操作上源码升级python,但是这样会导致的yum等利用python使用的命令错误,虽然修改yum源码可以解决问题,但是总感觉很麻烦,而且一个个命令文件的修改也感觉很LOW啊! 发现pyenv这个软件很不错,可以在一个系统中共存两套python版本,而且不影响系统自带老版本python的使用: 安装pyenv首

LNMP环境多版本php共存

写这个是因为博主在部署新网站的时候遇到的坑爹的问题 服务器已经有了环境:LNMP,也有网站在跑,这个是php5.5 坑爹的是,有个新网站要部署,按照惯例,nginx.conf中添加server,重启nginx却发现新网站跑不起来 查看error_log报的是[error] 18850#0: *2956 directory index of "/data/web/***/upload/" is forbidden 于是博主就各种搜,各种试,结果都不行,博主当时就想,也太坑爹了吧,于是跟客

IIS Internal Server Error &amp;IIS8中部署WCF服务出错:HTTP 错误 404.3 - Not Found

Http error      503. The service is unavailable. Due to appliction pool is stop and start it can resolve it Server Error Internet Information Services 7.5 Error Summary HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed b

IIS7.5中调试.Net 4.0网站出现无厘头500错误的解决办法 (转)

刚刚 部署了ii7的dll的有x86写的,就会出现以下这样的问题 iis 7 x86,Could not load file or assembly 'Name' or one of its dependencies. An attempt was made to load a program with an incorrect format. 解决这样的,只要设置一下iis兼容x86程序就可以了,具体步骤: 1.开始-> 运行 2. 3. 高级设置, Enable 32 - Bit Appli

Windows下Python2与Python3两个版本共存的方法详解

来源:http://www.jb51.net/article/105311.htm 这篇文章主要介绍了Windows下Python2与Python3两个版本共存的方法,文中介绍的很详细,对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧. 前言 一向用Python 3,最近研究微信公众号开发,各云平台只支持Python 2.7,想用其他版本需要自己搭建环境.而网上又搜不到Python 3开发微信公众号的资料.暂打算先使用Python 2.7,有空学习Docker后再迁移到Python 3.

linux下nginx多版本php共存

应用环境 LNMP的环境,当前PHP版本5.3.8,遇到一个应用需求只支持PHP 5.2.x,又希望保持现有应用还是用PHP 5.3.8.也就是说需要两个版本的PHP同时存在,供nginx根据需要调用不同版本. 思路 Nginx是通过PHP-FastCGI与PHP交互的.而PHP-FastCGI运行后会通过文件.或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释. 既然PHP-FastCGI是监听端口和文件的,那就可以让不同版本的P

IIS5.1、IIS6.0、IIS7.5中安装配置MVC 3

本文主要介绍在IIS5.1.IIS6.0.IIS7.5中安装配置MVC 3的具体办法! 正文: IIS5.1 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装ASP.NET MVC 3; 3. 在IIS中发布网站,创建虚拟目录,ASP.NET版本选择4.0.30196: 4. 添加MVC的解析: 右击IIS中的虚拟目录选择“属性”-“虚拟目录”-“配置”-“映射”-“添加”,配置如下: 可执行文件:C:\WINDOWS\Microsoft.NET\Frame

在 maven 中使用 snapshots 版本的 jar 包

1. 首先需要在 pom.xml 中配置如下的 snapshots 仓库 <repositories> <repository> <id>oss-snapshots</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </relea