在微软MIX09大会上,Windows Azure发布了它的第3个版本——Match 2009 CTP。从这个版本开始,Windows Azure开始支持FastCGI。(详见MIX09-Windows Azure (March 2009 CTP)里振奋人心的新特性一览,by 流牛木马) 支持FastCGI,也就是意味着支持PHP、Ruby、Python等当前流行的"非微软"web应用程序。我们很欣喜地看到Azure Services Platform迈出了“开放平台”的第一步。
PHP也许是当前web开发界最最流行的语言,所以“在Azure中使用PHP”这个问题引起了很多人的关注,流牛木马本人在最近两天也收到了好几个朋友的焦急求助。
也许是微软的那些牛人们最近在忙MIX09的缘故,提及Azure支持"FastCGI”的新闻报道很多,而却几乎没有提及具体怎样在Azure里配置使用PHP。就连在新版的Azure SDK里面,关于FastCGI的sample也不是使用php的。
不用着急,在本篇中,流牛木马将会演示在Azure中使用PHP的最详细流程。
(已部署到云端的Demo: http://ibm.cloudapp.net/php.php )
第一步,你必须知道的一些有关PHP&FastCGI的基本知识。
FastCGI的官方网站:http://www.fastcgi.com/
PHP的FastCGI模式:http://www.blogme.cn/node/6529
第二步,启用你IIS7中的FastCGI模块。
【注:本地调试环境需要。如果你打算直接部署到Cloud上,则不需要这一步。】
(下面以Vista Ultimate中文版为例:)
- 打开控制面板,进入”打开或关闭Windows 功能”
- 启用以下模块(图中红框的部分)
- 下载安装最新的FastCGI模块:http://support.microsoft.com/kb/967131
第三步,下载一个"xcopy-deployable”版本的PHP。
"xcopy-deployable”这个词来自微软的官方文档,但是很遗憾,在php的官方网站http://php.net/中,我们却没有找到这个词. - -P
根据词义理解一下:可以直接拷贝部署的PHP版本。通俗地说就是不需要安装的。
来到PHP官方网站的下载中心:http://www.php.net/downloads.php,在Windows Binaries部分找到最新版本号的"zip package“就可以了。比如现在php版本的最新版本是2009年3月10日的5.2.9-1,下载地址: http://cn2.php.net/get/php-5.2.9-1-Win32.zip/from/a/mirror
第四步,新建Web Cloud Service项目。
第五步,配置Service Definition 文件(ServiceDefinition.csdef)。









注意:需要在WebRole节点下增加enableNativeCodeExecution="true"属性
第六步:配置FastCGI和PHP
- 将刚刚下载的xcopy-deployable PHP压缩包解压缩到WebRole项目的php子目录下。
- 在WebRole项目根目录下增加Web.roleconfig文件,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<fastCgi>
<application fullPath="%RoleRoot%\php\php-cgi.exe" />
</fastCgi>
</system.webServer>
</configuration>
这里我们使用了"%RoleRoot%"变量来获得Web Role的根目录。这也是Match 2009 CTP版本所提供的新特性之一。 - 在Web.config文件的system.webServer-handlers节下增加对PHP文件的处理:
<system.webServer>
<handlers>
<..>
<add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule"
scriptProcessor="%RoleRoot%\php\php-cgi.exe"
resourceType="Unspecified" />
</handlers>
</system.webServer>
第七步:写一些简单的代码测试一下吧!
代码:















【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)