作者:夏明亮
大家好,有段时间没有写东西了,今天为大家带来的是在Windows Server 2008 R2上利用IIS搭建一个运行PHP网页的环境,接下来就开工吧。
今天的文章思路是按照先发现问题,然后想办法解决,最后验证问题解决的情况常规思维路线来走的,比较符合现实中的情况,这样大家看起来也会比较容易。
首先,发现问题
今天我想自己搭建一个小小的PHP网站,由于我身边已经有了Windows Server 2008 R2的服务器环境,并且我本人对Windows 的东西比较了解所以决定利用R2 的IIS Server来实现PHP网站的搭建,最开始在网上查些资料,看看需要安装些什么组件,这一步蛮重要的,大家最好多看些资料,否则即使最终大家实现了目的,那也只是被文章牵着鼻子走不知所以然。
第一步安装IIS Server
这里边的关键步骤是安装CGI组件()CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。我们需要利用fastCGI使IIS支持PHP的运行。有关FastCGI是个什么东东大家可在网上查到,我这里链接一个百科的地址:http://baike.baidu.cn/view/641394.htm
安装的步骤我就不多介绍了,贴一张关键的CGI的图:
注意:CGI必须选。由于我的环境还需要支持其他测试的需要,所以我比较不负责任的全选了,大家最好尽量少选一些组件,这样对自己的进步和服务器的性能都有好处。
然后,编一个简单的PHP网页,代码如下:
<?php phpinfo();?>
具体做法是创建一个TXT文件,将代码贴进去保存为XXX.php,我这里保存为Start.php
然后 将该文件放到网站的根目录文件夹下,我这里用的是默认网站,所以根目录在C:\intepub\wwwroot
设置网站的默认文档:
将start.php设置为默认文档,并上一到第一位。
来到如下图所示位置,选择浏览:
结果发现网页不能浏览,提示不支持。
这个问题的原因是我们刚搭建好的IIS没有经过配置默认是不会支持PHP的。
然后,解决问题。
首先安装Microsoft Visual C++ 2008 Redistributable Package,这个微软官网提供免费下载:
http://www.microsoft.com/zh-cn/download/details.aspx?id=29
安装PHP
1.下载PHP
http://windows.php.net/download/
我们今天介绍的是最新的for Windows版本。
VC9 x86 non Thread Safe
一. 如何选择PHP的版本
VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来搭建的,那就选择VC6版本。
VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那就选择VC9
二. 如何选择Thread Safe和Non Thread Safe版本
Thread Safe是线程安全,执行时会进行线程(Thread)安全监察,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程安全检查。
PHP的两种执行方式:ISAPI和FastCGI.
ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;
而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,出去线程安全检查的防护反而可以提高效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本;
2.解压缩并把解压出来的文件放在自定义的安装目录下
3.修改php.ini文件(由复制php.ini-production改名得到)
4.修改点见附件
1extension_dir = “<你的PHP安装程序安装路径>”
2设置时区,避免意外错误发生。
3设置.dll文件,取消其前边的”;”。
注意:其中的extension=php_exif.dll必须放在extension=php_mbstring.dll的后面。
4fastcgi.impersonate = 1
Cgi.rfc2616_headers = 1
5cgi.force_redirect = 0
6short_open_tag = On
5. 配置iis的“处理应用程序映射”
添加模块映射
6.重启IIS,浏览。
转载于:https://blog.51cto.com/mlxia/1217785