zl程序教程

您现在的位置是:首页 >  后端

当前栏目

IIS7配置PHP环境图文教程(fastcgi快速最新版)

PHP配置教程 环境 快速 图文 最新版 IIS7
2023-06-13 09:14:16 时间

我们知道php配置有几种:

1、CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。
特点是:稳定,但效率太低。

2、ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。
特点是:多线程,效率较高,但不够稳定。

3、FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。
特点是:高效率,高稳定性,属于将来发展趋势。

我试过其他的特别麻烦,PHP5.3发布的Windows版已经不支持ISAPI模式了,所以我打算按微软推荐的FastCGI方式运行PHP。

我用的就第三种,也是最好最快的,因为FastCGI大大加强了IIS处理PHP的能力,能迅速提高PHP站点的反应速度和生产力,

并具有更高的稳定性和安全性.

下载地址:http://windows.php.net/download/里面有好多种,要那种呢?

PHP现在推出5.3.2版本了,不过下载的时候有几个不同版本选择。那就是VC6X86和VC9X86。
首先我来解答:
VC6是什么?
VC6就是legacyVisualStudio6compiler,就是使用这个编译器编译的。
VC9是什么?
VC9就是theVisualStudio2008compiler,就是用微软的VS编辑器编译的。

那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9版本;

那NonThreadSafe是什么?
NonThreadSafe就是非线程安全;
ThreadSafe是什么?
NonThreadSafe是线程安全;
官方并不建议你将NonThreadSafe应用于生产环境,所以我们选择ThreadSafe版本的PHP来使用

下载安装,我安装默认路径了:

记得选中第三项:IISFASTCGI

如果没有安装IISFASTCGI的下一步会提示没有安装的,下载安装就行了

FastCGIforIIS67http://www.iis.net/expand/fastcgi

安装好后,继续下一步,我按照默认了:

安装完毕后,就是配置了。

这种配置有两种方法,我用cmd配置,一条命令就行了。

转到刚才安装CGI的目录下:

>cdC:\WINDOWS\system32\inetsrv

>cscriptfcgiconfig.js-add-section:"PHP"-extension:php-path:"C:\ProgramFiles\PHP\php-cgi.exe"

注意:path:"xxxx\php-cgi.exe”是你安装php的目录

>cscriptfcgiconfig.js-set-section:"PHP"-InstanceMaxRequests:10000
>cscriptfcgiconfig.js-set-section:"PHP"-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

ok!完毕!

测试下:

新建一个.php文件,里面

<?php

phpinfo();

?>

保存!

运行,出现下面页面,说明配置成功了!

这样的方法IIS就不用怎么配置,他都会自动配置好了!微软提供的配置更加详细!

如果按上面的教程配置好后,运行php测试页面,出现了500错误。

那就设置php.ini中的date.timezone项。

我这里设置成上海时区:date.timezone=Asia/beijing

设置完后就一切正常了!

在这里会出现几个问题的,需要注意一下:(我自己配置的时候遇到的问题)

  1.对于空机子的服务器,一般没有安装别的什么数据库软件的,所以大家运行一下C:ProgramFilesPHPphp-cgi.exe,是否会出现问题,然后解决问题。(用cmd试运行)

  运行C:ProgramFilesPHPphp-cgi.exe,如果能进入命令窗口并且只有光标,说明FastCGI能正常调用php-cgi,否则会提示错误,如图



  2.运行测试页面就显示500错误(我自己遇到了问题,然后在网上找到了解决方法。)

  解决方法:

  打开IE----INTERNET选项--------高级------------显示友好的HTTP错误前面的勾去掉,再出现错误的时候会提示你错误的具体提示。

  提示:

  PHPWarning:Unknown:open(c:phpupload_tmpsess_li3ardp5qtalfj4,O_RDWR)failed:Permissiondenied(13)inUnknownonline0PHPWarning:

  Unknown:open(c:phpupload_tmpsess_li3ardbp5qtalfj4,O_RDWR)failed:Permissiondenied(13)inUnknownonline0PHPWarning:Unknown:Failed

  towritesessiondata(files).Pleaseverifythatthecurrentsettingofsession.save_pathiscorrect(c:phpupload_tmp)inUnknownonline0

  这说明我没有给c:phpupload_tmp写入权限,给了.写入权限,解决!