2012-01-19 2 views
0

기본 허용 경로를 어떻게 변경 할 수 있습니까? 예.Windows Azure WebRole의 변경 경로

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

WebRole의 웹 루트가 : 나는 누구의 웹 루트 하위 폴더 인 PHP 프레임 워크 실행하려면

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

가 가져 모두 내가 얻을 togehter :

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.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  

답변

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는별로 다르지 않았다).

UPDATE 여기에 배포되는 샘플 :

http://symphony.staykov.net/

http://sn.cloudapp.net/

그 symphony.staykov.net을 유의하시기 바랍니다는 sn.cloudapp.net하는 단지 CNAME이다.

그러나 배포 할 때 두 사이트는 각각 자신의 하위 폴더 e : \ sitesroot에 있습니다. 그것이 당신에게 문제가 될지 모르겠다. 웹에 교향곡 파일을 어떻게 포함합니까? 즉 require_once ('../ symphony/something.php')? 이것은 실제로 작동하지 않을 것입니다 ...

샘플 스캐 폴딩 솔루션을 업로드하고 오늘 또는 내일 링크를 제공합니다.

업데이트 2 - 소스

당신은 실험을 시작하기 위해 scaffolded source hereactual deploy package here을 확인할 수 있습니다. 그것이 당신의 문제를 해결하는 방법에 대한 아이디어를 줄 수 있기를 바랍니다.

+0

이것은 실제로 작동하지 않습니다. Web.config에 특수 다시 쓰기 규칙이 정의되어 있습니까? – ownking

+0

무엇이 작동하지 않습니까? web.config에 몇 가지 특별한 구성이 있다면 ./symphony/web 폴더에 동일한 web.config의 사본을 넣기 만하면됩니다. 이것 때문에 지금입니다 ./symphony/web은 IIS 응용 프로그램의 루트입니다 (webrole에서 분리 된). 따라서 web.config에서 일부 seeting을 수행하는 경우 symphony의 "web"하위 폴더에 동일한 web.config를두면 작동합니다. 거기에 ASP.NET 페이지가있는 경우 몇 가지 문제가있을 수 있지만 PHP 일 경우 작동합니다. – astaykov

+0

"패키지 만들기"를 실행 한 후 빈 페이지가 나타나고 IIS가 사이트를 바인딩하지 않았습니다. 나는 웹 사본을 가지고있다.WebRole과 웹 폴더의 설정. PHP 페이지 만 있습니다. 나는 틀린 것을 모른다. – ownking