设为首页 收藏本站
查看: 1253|回复: 0

[经验分享] 【Azure Services Platform Step by Step-第13篇】在Windows Azure中使用PHP

[复制链接]

尚未签到

发表于 2015-8-26 08:10:31 | 显示全部楼层 |阅读模式
  在微软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 功能”
    DSC0000.png
  • 启用以下模块(图中红框的部分)
    DSC0001.png
  • 下载安装最新的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项目。
DSC0002.png
  第五步,配置Service Definition 文件(ServiceDefinition.csdef)。

DSC0003.gif <?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="CloudService1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="WebRole" enableNativeCodeExecution="true">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
    </InputEndpoints>
  </WebRole>
</ServiceDefinition>
  注意:需要在WebRole节点下增加enableNativeCodeExecution="true"属性
  
  第六步:配置FastCGI和PHP

  • 将刚刚下载的xcopy-deployable PHP压缩包解压缩到WebRole项目的php子目录下。
    DSC0004.png
  • 在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>
  第七步:写一些简单的代码测试一下吧!
     代码:

<?php

$iipp=$_SERVER["REMOTE_ADDR"];
echo "你的IP地址是".$iipp."<br />";

echo "这是用PHP的echo命令输出的文字。<br />";

echo "<h1><font color='Red'><b>Hello PHP on Azure!</b></font></h1><br />";

echo "<a href='http://azure.cnblogs.com/'>流牛木马的Azure博客</a><br />";

echo "<font color='Blue'>以下是当前PHP环境的系统变量:</font><br />";
phpinfo();
?>
  
     效果图:
      DSC0005.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104230-1-1.html 上篇帖子: Windows Azure Cloud Service (23) 使用Full IIS模式部署多站点和虚拟目录 下篇帖子: Azure SLB + httpd + ILB + HAProxy + Atlas + MySQL
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表