平时帮朋友们配置过一些PHP环境的服务器,但是一直使用的都是Apache HTTP+PHP,今天呢,我吧IIS+PHP配置方式给大家发一下下~呵呵。

  在这里,我使用的是FastCGI模块映射的方式配置的,当然还有ISAPI处理程序映射,不过ISAPI的方式在PHP5.5之后就没有了,FastCGI是推荐的方式,效率相对比较高也稳定。

  系统我用的是自己的笔记本,Windows 8.1,IIS是8的,当然Windows Server也是一样的,照着弄就行。

演示环境:

  • Windows 8.1
  • IIS 8
  • PHP 5.6.4

过程:

  1. 开启系统的IIS平台
  2. 选择下载PHP环境
  3. 配置PHP环境
  4. 启用IIS的PHP支持
  5. 测试PHP环境

1. 开启系统的IIS平台

  貌似除了Windows Server的系统,其他的系统里面IIS都是默认关闭的,需要手动开启。

  打开卸载程序面板,点击左侧的“打开或关闭Windows功能”,然后打开了“Windows功能”窗口:

  

  然后,找到“Internet Information Service”(IIS)并展开,勾选所有项(实际上很多选项使我们用不到的,用什么勾选什么就OK了):

  等待启用,完成后,运行CMD命令“inetmgr”,打开IIS管理面板:

  

  左侧网站中会有一个默认站点“Default Web Site”,默认自动启动的,我们访问"http://localhost",会显示IIS 8的欢迎界面,表示IIS启用成功:

2. 选择下载PHP环境

  去PHP官网下载Windows环境的PHP环境,目前最新版本是“PHP 5.6 (5.6.4)”,也是我的演示环境。

  但是官网下面有四个选项:

    1. VC11 x86 Non Thread Safe (2014-Dec-18 00:06:50)
    2. VC11 x86 Thread Safe (2014-Dec-18 00:01:59)
    3. VC11 x64 Non Thread Safe (2014-Dec-18 00:02:02)
    4. VC11 x64 Thread Safe (2014-Dec-18 00:02:02)

  “Non Thread Safe”就是非线程安全版本,“Thread Safe”就是线程安全版本。

  FastCGI的执行方式是单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查方面的防护反而可以提高执行的效率。我们这次是通过FastCGI方式配置的,所以选择“Non Thread Safe”版本的环境,x86则是32位,x64则是64位,这个就不用多说了。

  我的系统是Windows 8.1 x64的,所以在这里我就选择“VC11 x64 Non Thread Safe (2014-Dec-18 00:02:02)”,点击下载,在这里下载后我就解压到“C:\PHP5”这个目录了。

3. 配置PHP环境

  转到刚刚解压的PHP目录,我的是“C:\PHP5”,将“php.ini-development”文件复制一份,重命名为“php.ini”,这个作为php环境的配置文件。

  用记事本打开编辑,搜索“date.timezone”,找到“;date.timezone =”并编辑为:"date.timezone = Asia/Shanghai,如下:

  还有以下这些设置项,和上面一样搜索设置即可:

  • register_globals = On    # 开启GET数据调用
  • short_open_tag = On    # PHP支持短标签
  • cgi.force_redirect = 0    # 开启以CGI方式执行PHP
  • fastcgi.impersonate = 1
  • cgi.rfc2616_headers = 1

  然后,找到以下扩展选项,去掉前面的分号(启用):

  • ;extension=php_gd2.dll
  • ;extension=php_curl.dll
  • ;extension=php_mbstring.dll
  • ;extension=php_exif.dll
  • ;extension=php_mysql.dll
  • ;extension=php_mysqli.dll
  • ;extension=php_scokets.dll
  • ;extension=php_pdo_mysql.dll

去掉后如下:

  然后搜索“extension_dir”,去掉前面的分号,并且指定PHP环境扩展文件所在目录,也就是下载PHP中的ext文件夹,例如我的:

  最后,保存,复制一份这个“php.ini”到“C:\Windows”中即可。

4. 启用IIS的PHP支持

  回到IIS管理中心,点击目标网站,在右侧找到“处理程序映射”:

  打开“处理程序映射”,点击右侧的“添加模块映射”,弹出模块映射设置窗口,名称输入“*.php”,模块选择“FastCgiModule”,执行程序选择你刚刚下载配置的PHP目录中的“php-cgi.exe”,最后确定:

  然后,点击网站,右侧的“默认文档”中,添加php的默认页面“index.php”项:

5. 测试PHP环境

  打开IIS管理平台,右键左侧刚刚配置好的站点,浏览文件夹,新建一个“index.php”,输入以下代码:

 <?php
     phpinfo();
 ?>

  然后,访问“http://localhost/index.php”,便可以看到PHP的信息页面:

  到此,全部配置完毕!呵呵。

  因为以前的PHP环境是msi安装版本的,系统环境缺少东西的话会自动在线安装,也可以手动界面化配置,但是现在都是解压版的了,所以,有时候可能会出现一些问题,但都是小问题,百度上有很多。

  比如常见的一个问题:php.exe无法运行或者无权限访问什么的,就是系统需要安装“Visual C++ Redistributable for Visual Studio 2012 Update 4(x64)”和“Visual C++ Redistributable for Visual Studio 2012 Update 4(x86)”。

  上面演示如果有什么漏掉了忘写了,请留言说明,如果需要什么软件找不到,可以留言,软件我都已经上传网盘了。

  好了,码字不容易,觉得还不错记得点个赞哦~呵呵。

IIS8 使用FastCGI配置PHP环境支持 过程详解的更多相关文章

  1. fabric网络环境启动过程详解

    这篇文章对fabric的网络环境启动过程进行讲解,也就是我们上节讲到的启动测试fabric网络环境时运行network_setup.sh这个文件的执行流程 fabric网络环境启动过程详解 上一节我们 ...

  2. 【必知必会】手把手教你配置MySQL环境变量——图文详解

    一.先决条件 假设我们已经成功安装MySQL数据库.如果还有小伙伴不知道如何安装MySQL数据库,可以在本文下留言,留言数超20,则出一期"手把手教你安装MySQL数据库--图文详解&quo ...

  3. pycharm+PyQt5+python最新开发环境配置,踩坑过程详解

    安装工具:Pycharm 专业版2017.3PyQT5python3 pyqt5-tools 设置扩展工具的参数找到setting->tools->external tools,点击加号新 ...

  4. win10下vs2015配置Opencv3.1.0过程详解

    下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载.  点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为 ...

  5. win10下vs2015配置Opencv3.1.0过程详解(转)

    下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载.  点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为 ...

  6. Linux系统下配置squid代理服务器的过程详解

    简单记录一下Squid透明代理服务器的配置 环境:VirtualBox + CentOS 6.0 + squid-3.1.4-1.el6.i686 0.检查squid是否默认安装,没有安装的先安装 [ ...

  7. nginx上用fastcgi配置python环境

    费了2天的功夫,翻阅了无数的中文.英文资料,终于搞定.写下此文留待以后翻阅用      本文环境,centOS 5.4 ,Nignx-0.8.49, Python 2.6.5   ========== ...

  8. uboot主Makefile分析(t配置和编译过程详解)

    1.编译uboot前需要三次make make distcleanmake x210_sd_configmake -j4 make distclean为清楚dist文件. make x210_sd_c ...

  9. uboot配置和编译过程详解【转】

    本文转载自:http://blog.csdn.net/czg13548930186/article/details/53434566 uboot主Makefile分析1 1.uboot version ...

随机推荐

  1. DailyTick 开发实录 —— 开始

    2009 年我读了李笑来老师的<把时间当朋友>,知识了柳比歇夫的时间记录法.当时激动坏了,马上动手实践起来.一开始的时候,是用一个小本子,走到哪儿都带着.完成一件事,就记录一下花费的时间. ...

  2. JS 判断数据类型的三种方法

    说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...

  3. 0-1背包问题蛮力法求解(java版本)

    sloves: package BackPack; public class Solves {  public int[] DecimaltoBinary(int n,int m)  {   int ...

  4. [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

    打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...

  5. 手把手教你写一个RN小程序!

    时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...

  6. IdentityServer4 使用OpenID Connect添加用户身份验证

    使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.I ...

  7. VS项目中使用Nuget还原包后编译生产还一直报错?

    Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...

  8. iOS 原生地图地理编码与反地理编码

    当我们要在App实现功能:输入地名,编码为经纬度,实现导航功能. 那么,我需要用到原生地图中的地理编码功能,而在Core Location中主要包含了定位.地理编码(包括反编码)功能. 在文件中导入 ...

  9. docker4dotnet #1 – 前世今生 & 世界你好

    作为一名.NET Developer,这几年看着docker的流行实在是有些眼馋.可惜的是,Docker是基于Linux环境的,眼瞧着那些 java, python, node.js, go 甚至连p ...

  10. 全网独家MongoDB Certified DBA Associate考试认证视频

    该视频意在让所有学员一次通过考试,避免重复考试而承担的巨额考试费用! 目前MongDB发展迅猛,有赶超mysql,和oracle看齐的苗头.在这个时候MongoDB也适时的推出了官方的认证考试&quo ...