您现在的位置: 弘智首页 > .NET > ASP.NET >

微软Azure部署PHP与ASP.NET :双管齐下

时间:2012-09-13 来源:弘智教育 点击: 次
如何在Windows Azure相同的Web Role上同时部署PHP和ASP.NET的网站?今天,在与大家分享方法之前,请大家先安装Windows Azure、Visual Studio 2012以及Windows Azure平台上的.NET SDK。也许可以在不安装Visual Studio的前提下也可能同时部署两个网站,但至少我现在还没有发现这个方法。

  首先,我强烈推荐大家看看Cloud Cover的视频剪辑。Cloud Cover Episode 37: Mulitple Websites in a Web Role.

  这个视频讲述的是如何部署多个.NET网站,但是它包含了你需要部署各种网站的所有信息。

  然后,在部署应用之前,你可以做些基础工作,首先在Windows Azure平台上为你的ASP.NET网站的域名创建一个空的托管服务(如:mysite.cloudapp.net)。然后为PHP网站创建一个CNAME域名记录(mysite.cloudapp.net),用于指向Azure域名(mysite.cloudapp.net)。(这里我假设大家有一个域名,类似www.myphpsite.com)。这些步骤做完后,一切就越来越清晰了。

  1. 在Visual Studio中创建一个Windows Azure项目,会提示添加Web Role。选择任意一个ASP.NET Web Role(我选择的是ASP.NET MVC 3 Web Role)。以下步骤通过点击OK默认设置即可完成。

  2. 打开服务定义文件(ServiceDefinition.csdef),添加类似于下面的元素

  

 

  01.Site name=YourSiteName physicalDirectory=path\to\your\PHP\app>

  02.

  03.Bindings>

  04.

  05.Binding name=Endpoint1 endpointName=Endpoint1hostHeader=www.yourdomain.com />

  06.

  07.Bindings>

  08.

  09.Site>


  你需要添加name、physicalDirectory、以及hostHeader属性值。Name属性不作特别要求,但是physicalDirectory属性必须指向你本地的PHP应用程序,hostHeader值应该是PHP应用程序的域名。

 

  3. 打开服务定义文件后,在元素后新增以下的元素。

  

 

  01.Startup>

  02.

  03.Task commandLine=add-environment-variables.cmdexecutionContext=elevated taskType=simple />

  04.

  05.Task commandLine=install-php.cmd executionContext=elevatedtaskType=simple >

  06.

  07.Environment>

  08.

  09.Variable name=EMULATED>

  10.

  11.RoleInstanceValue xpath=/RoleEnvironment/Deployment/@emulated/>

  12.

  13.Variable>

  14.

  15.Environment>

  16.

  17.Task>

  18.

  19.Task commandLine=monitor-environment.cmdexecutionContext=elevated taskType=background />

  20.

  21.Startup>


  当你部署应用程序的时候,启动任务会开始安装PHP,并且完成IIS的配置,来处理PHP的响应要求

 

  4. 将startup 任务中参考的文件添加至ASP.NET项目,一旦完成后,目录如下图

 

 

转播到腾讯微博
微软Azure部署PHP与ASP.NET :双管齐下

 

  如果你想要使用Compute 和Storage模拟器来运行你的应用程序,你需要编辑yourhosts 文件(你可以通过点击Start-Run,键入drivers,hosts文件会在etc目录下)载hosts文件中添加以下代码

 

  

 

  127.0.0.1 www.myphpsite.com


  按住Ctrl+F5(或者选择Start Without Debugging)在模拟器中运行你的应用程序

 

 

微软Azure部署PHP与ASP.NET :双管齐下


  你可以通过http://127.0.0.1:81来查看生成的网站。如果你的浏览器转接到http://www.myphpsite.com:81,你可以查看到你的PHP站点。

 

  6.当你准备好部署app后,你可以使用Visual Studio的工具:

  http://msdn.microsoft.com/en-us/library/windowsazure/ff687127.aspx#Publish.

  发布以后,你可以通过浏览 mysite.cloudapp.net查看ASP.NET应用程序(假设你已经为你的PHP网站建立了一个CNAME记录),并且通过访问www.myphpsite.com可以查看你的PHP站点。

弘智主页 | 弘智介绍 | 培训课程 | XML地图