PHP on Windows Azure 入门教学系列(一):在Windows Azure内运行PHP应用

从今天开始,我们会陆续推出 PHP on Windows Azure 入门教学文章。PHP是一种非常流行的,主要用于处理动态网页的脚本语言。PHP用户对于能在Windows Azure平台内运行PHP应用必定会感到惊喜。

我们知道,微软Windows Azure平台相较与其他云计算平台的优势之一便在于其拥有便利的开发工具和熟悉的编程语言的先天优势。

下面我们就来看看,在Windows Azure内运行PHP应用是多么的简单和轻松。

 

前置条件:

 

代码:

1.首先,我们从https://windows.php.net/download/ 处下载非线程安全的最新版PHP.

笔者下载的是VC9 x86 Non Thread Safe (2010-Mar-04 20:11:07)版本。在下载页的侧边栏,我们可以看到VC6和VC9版本的差别,VC6版是用Visual Studio 6编译器编译的,而VC9版本是Visual Studio 2008编译器编译的,性能和稳定性都有提高。

至于线程安全与非线程安全的区别在于Windows 操作系统采用多线程架构,而Linux和Unix采用多进程架构。具体请参看这里这里

 

2.打开Visual Studio,新建项目->Visual C#->Cloud->Windows Azure Cloud Service。输入项目名称CloudService1,之后点击OK。

 

添加CGI_Web Role,重命名为PHP_WebCgiRole。点击ok。

 

3.在PHP_WebCgiRole项目内,新建目录,命名为php。将第一步下载的PHP解压至该目录。如下图:

 

4. 在PHP_WebCgiRole项目内新建文件,命名为index.php。

 

在index.php写入如下代码:

<?php     

phpinfo();

?>

 

5.打开PHP_WebCgiRole项目内Web.roleConfig,将内容修改为下图:

 

6.打开PHP_WebCgiRole项目内Web.config,为应用程序配置默认页面。定位到system.webServer,在最后加入如下粗体代码:

 

<system.webServer>

  ...

  <modules>

    ...

  </modules>

  <handlers>

    ...

  </handlers>

   

  < defaultDocumentenabled = "true">

    < files >

      < addvalue = "index.php" />

    </ files >

  </ defaultDocument >

</system.webServer>

 

7. 配置FastCGI Handler。在刚加入代码的上方,将内容修改如下图:

 

 

验证:

8.此时按下F5,调试程序。我们有可能会看到如下错误。因为我们会在本地模拟Windows Azure环境,需使用本地IIS。而我们还可能没有为IIS设置好FastCGI模块。(另,此程序已经可直接部署至Windows Azure,并可运行)。

 

 

打开我的电脑,添加删除程序,打开或关闭Windows 功能, 在Internet Information Services下,勾选CGI选项,如下图:

 

 

重新按F5,调试,我们会看到在浏览器中如下内容:

我们看到我们的PHP版本号是5.3.2。

 

按Shift+F5 退出调试。右击CloudService1项目,Publish ,选择Create Service Package Only。

 

我们将2个部署文件部署至Windows Azure 云端之后(具体部署过程请参看这里),通过网址访问 ,便能看到如下内容:

 

可以看到PHP程序已经成功的运行在了Windows Azure云端,是不是非常简单呢?

在下一篇文章中,我们会讲解如何以PHP连接到SQL Azure数据库上,敬请期待。