在windows下使用IIS配置PHP运行环境

3 篇文章 0 订阅

使用IIS来运行PHP还是比较简单的,可以轻松实现多PHP版本运行,需要准备的文件:

  1. IIS。
  2. VC运行库(VC运行环境)。
    微软官网上没找到,还是CSDN的网友比较厉害:
    下载地址:
    https://download.csdn.net/download/p270228163/11079423(vc9到vc15,32位和64位全有,此下载地址仅供参考
  3. windows环境下的PHP包。(如:php-7.4.4-nts-Win32-vc15-x64.zip,nts表示为非线程安全,Win32表示适用于32位系统,vc15表示系统需要安装VC15的运行环境)
    下载地址:
    PHP For Windows: Binaries and sources Releases(最新版本的下载列表)
    windows.php.net - /downloads/releases/archives/(历史版本的下载列表)

准备好之后,开始配置。

第一步:IIS安装

打开:“控制面板-》程序-》启用或关闭windows功能”对话框,列表中找到Internet信息服务选项(Internet Information Services,简写即:IIS),选中:

  1. Web管理工具-》IIS管理控制台
  2. 万维网服务,必选项:常见HTTP功能(静态内容,默认文档 两个项目必选),应用程序开发功能(有ISAPI的项目必选)
  3. 确定,等待安装完毕。

第二步:安装VC运行环境(已经安装过对应PHP版本的VC运行库可以跳过此步

  1. 解压下载的库包。
  2. 找到对应的版本,双击运行安装(注意版本和系统)。

第三步:配置PHP

  1. 解压PHP包。
  2. 修改PHP的配置文件:在解压开的PHP包的目录里有两个PHP的配置文件(php.ini-production和php.ini-development)分别表示生产和开发环境。复制其中的一个文件(生产环境用生产文件,开发环境用开发文件)改名为php.ini(放在PHP的这个目录里就好,不用复制到其它地方)。
  3. 用记事本或其它编辑器打开php.ini,开启找到extension_dir = "ext",将前边的分号去掉。
  4. 开启常用的PHP扩展,将前边的分号去掉:extension=php_curl.dll,extension=php_gd2.dll,extension=php_mbstring.dll,extension=php_mysql.dll(已不建议使用),extension=php_mysqli.dll,extension=php_openssl.dll,extension=php_pdo_mysql.dll。
  5. 保存。

第四步:配置IIS运行PHP。

  1. 打开IIS管理器。
  2. 服务和应用程序-》Internet Information Services-》网站,右键(或右边栏)-》添加站点。
  3. 选中添加好的站点,主窗口第二栏(IIS)里,双击处理程序映射,右边栏点击添加模块映射。
  4. 填写内容,请求路径:*.php,模块:FastCgiModule,可执行文件:path\to\php\php-cgi.exe(必须是这个),名称:随便起,我这里写“PHP7”,点击确定。(不同的站点可以选择不同的PHP版本)
  5. 在主窗口第二栏内,点击默认文档,添加一个:index.php。
  6. 点击确定后,会在站点的根目录生成一个web.config文件,保存了这个站点的PHP的相关配置信息。
  7. 在站点根目录下,添加一个PHP文件:info.php
    <?php
    phpinfo();

  8. 访问下这个文件,如果能显示PHP的信息,则表示配置正确。
  9. URL重写模块下载:URL Rewrite : The Official Microsoft IIS Site

参考图片:

命令行执行下,看是否报错。下边的报错说明没有安装VC11的运行库,安装后就可以了。

PHP IIS 环境 ob_flush()刷新缓冲区执行完才显示 解决办法,iis缓冲区原因

找到C:\Windows\System32\inetsrv\config\applicationHost.config 文件;
找到这段代码 <handlers accessPolicy="Read, Script">
找到<add name="PHP" path="*.php" ...................................
在结束标签前添加代码 responseBufferLimit="0";
我的完整代码是<add name="PHP" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="F:\web_huanjing\php-5.6.40\php-cgi.exe" resourceType="File" responseBufferLimit="0"/>

<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');

ob_end_clean();
//ob_end_flush();
ob_implicit_flush(1);

echo 'Show time ...<br>';

//输出到浏览器
flush();

for($i=0; $i<=10; $i++)
{
    echo 'process '.$i.'0%<br>';
    echo str_repeat(' ', 4096);
    //如果浏览器已关闭
    if ( connection_aborted() )
    {
        //如果希望关了浏览器后程序继续执行,把这行去掉即可
        exit;
    }
    //输出
    flush();

    //暂停1s
    sleep(1);
}

//这里已经是结束了,就不用再flush了。
echo 'The End.<br>';

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值