热搜词
发表于 2011-12-10 14:44:47 | 显示全部楼层 |阅读模式
在Windows 2008 R2服务器的 IIS7.5中不仅可以托管.NET类应用程序,微软也开放了PHP应用程序的托管,实际上,这可以追溯到IIS 7.0对PHP的正式支持,在IIS上配置FastCGI托管PHP代码有许多高级设置.

  在IIS 7.5中,这些参数可以通过图形界面进行配置,下面是在IIS 7.5中的图形配置窗口:
  图 1 设置FastCGI解析程序的路径

  图 2 设置每个实例可以处理的最大请求数

  图 3 创建环境变量 PHP_FCGI_MAX_REQUESTS


  在IIS 7.5中,这些参数不仅可以通过以上的图形界面进行配置,也可以通过编辑applicationHost.config 配置文件中进行配置。在Windows中,配置文件中路径是%systemroot%\System32\inetsrv\config\applicationHost.config。

打开applicationHost.config 配置文件就可以看到所有针对应用程序池和Web网站的修改内容,并可以看到虚拟目录在IIS配置中创建的项目。

我们完成的所有修改内容都保存于<system.applicationHost>元素之下。

创建应用程序池则定义在<applicationPools>标记内:
  1. <applicationPools>
  2. <add name="DefaultAppPool" />
  3. <add name="WebSite1AppPool" />
  4. <add name="WebSite2AppPool" />
  5. <applicationPoolDefaults>
  6. <processModel identityType="NetworkService" />
  7. </applicationPoolDefaults>
  8. </applicationPools>
复制代码
可以在<sites>标记中看到针对网站本身的配置:
  1. <site name="WebSite1" id="2" serverAutoStart="true">
  2. <application path="/" applicationPool="WebSite1AppPool">
  3. <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\webSite1" />
  4. </application>
  5. <bindings>
  6. <binding protocol="http" bindingInformation="*:80:www.website1.com" />
  7. </binding>
  8. </site>
  9. <site name="WebSite2" id="3" serverAutoStart="true">
  10. <application path="/" applicationPool="WebSite2AppPool">
  11. <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\webSite2" />
  12. </application>
  13. <bindings>
  14. <binding protocol="http" bindingInformation="*:80:www.website2.com" />
  15. </bindings>
  16. </site>
复制代码

我在这个文件中为PHP应用程序增加了以下FastCGI设置:
  1. <fastCgi>
  2. <application fullPath="{approot}phpphp-cgi.exe" maxInstances="4" instanceMaxRequests="10000" requestTimeout="180" activityTimeout="180">
  3. <environmentVariables>
  4. <environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" />
  5. </environmentVariables>
  6. </application>
  7. </fastCgi>
复制代码

        在上面的配置中, fullPath 指定了FastCGI解析程序的路径, maxInstances 指定可以启动的最大实例数目, instanceMaxRequests 指定了每个实例可以处理的最大请求数, requestTimeout 指定了请求的超时时间为180秒, activityTimeout 指定了活动会话超时时间为180秒,另外还创建了一个环境变量 PHP_FCGI_MAX_REQUESTS ,默认值设为10000。

        在这些项中,可以看到:通过简单地编辑applicationHost.config文件,很容易就可以创建一个网站。注意,这种创建一个网站的方式并非最佳实践方式,因为在编辑文件的过程中无法进行配置检查,一旦出现错误,那么可能会导致非法的IIS配置,进而可能导致服务器运行发生失效。我们强烈建议:如果需要直接编辑applicationHost.config文件,那么请务必事先备份该文件,或者启用Windows Server 2008内置的Shadow Copy特性来管理文件的不同版本。

  事实上,PHP项目也包括一个 web.config 配置文件,可以通过它配置index.php为网站默认首页,以及为.php扩展的文件注册 PHP FastCGI 处理程序。

本帖被以下淘专辑推荐:

全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-23 15:06 , Processed in 0.158275 second(s), 28 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team