更改Windows Azure Web角色的应用程序根路径

时间:2012-01-19 11:18:52

标签: php windows symfony1 azure document-root

如何更改默认的审批路径? 例如。我想运行一个PHP框架,其Web根目录是子文件夹:

  symfony
  |_ app
  |_ bin
  |_ src
  |_ web <- Web root
      |_ index.php

WebRole的Web根目录在那里:

WebRole <- Web root
 |_ bin
 |_ php
 |_ resources
 |_ WindowsAzureSDKForPHP
 |_ diagnostics.wadcfg
 |_ Global.asax
 |_ Web.config
 |_ index.php
ServiceConfiguration.cscfg
ServiceDefinition.csdef

当我带来两个人时,我得到了:

WebRole
 |_ bin
 |_ php
 |_ resources
 |_ WindowsAzureSDKForPHP
 |_ diagnostics.wadcfg
 |_ Global.asax
 |_ Web.config
 |_ symfony
      |_ app
      |_ bin
      |_ src
      |_ web <- Desired web root
          |_ index.php      
ServiceConfiguration.cscfg
ServiceDefinition.csdef

有没有办法告诉Windows Azure Web根目录已更改? (Web.config中的defaultDocument设置是不够的。)

修改

在astaykov建议更改后,结构如下:

WebRole
 |_ ServiceConfiguration.cscfg
 |_ ServiceDefinition.csdef
 |_ symfony
      |_ app
      |_ bin
      |_ src
      |_ web <- Desired web root
         |_ bin
         |_ php
         |_ resources
         |_ WindowsAzureSDKForPHP
         |_ diagnostics.wadcfg
         |_ Global.asax
         |_ Web.config
         |_ index.php      

1 个答案:

答案 0 :(得分:0)

您可以尝试将其添加为其他网站吗?例如,将folling站点节点添加到服务定义站点元素:

 <Site name="symphony" physicalDirectory="../WebRole1/symphony/web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="www.symphony.com" />
        </Bindings>
  </Site>

您需要将“Endpoint1”和“www.symphony.com”替换为您的实际端点名称和主机标头。我在本地测试它并且它工作(我测试了常规的html文件,但有php没有太大的不同)。

<强>更新 这是部署样本:

http://sn.cloudapp.net/

http://symphony.staykov.net/

请注意,symphony.staykov.net只是sn.cloudapp.net的CNAME。

但是,部署后,两个站点都将驻留在自己的e:\ sitesroot子文件夹中。不知道这对你来说是不是一个问题。如何在网络中包含交响乐文件?即require_once('../ symphony / something.php')?这不会真的有用......

我将上传示例脚手架解决方案,并在今天或明天晚些时候提供链接。

更新2 - 来源

您可以查看scaffolded source hereactual deploy package here开始试验。希望它能为您提供有关如何解决问题的一些想法。