我正在将Azure DevOps与“ Azure应用程序服务部署”任务(AzureRmWebAppDeployment @ 3)一起使用,以部署到Azure网站,但在部署到Web根目录时遇到了麻烦。
该应用程序是PHP,具有一个“公共”文件夹,该文件夹被设计为唯一公开公开的文件夹。文件夹结构如下:
/
application/
vendor/
public/
index.php
favicon.ico
images/
etc...
当我将“虚拟应用程序”设置设置为“”(如空白)配置Azure App Service Deploy任务时,它实际上似乎默认为“ /”虚拟应用程序。
这是有问题的,因为默认应用程序(“ /”)应该指向/sites/wwwroot/public/
,以便索引文件位于/sites/wwwroot/public/index.php
。
此设置中发生的是,当“虚拟应用程序”设置为空时,部署任务默认显示为“ /”,这导致部署到/sites/wwwroot/public
,因此我的索引文件位于{{ 1}}(可通过https://app.azurewebsites.net/public/index.php在网络上访问)
如何将应用程序部署到Web根/sites/www/root/public/public/index.php
,以使索引文件位于磁盘上的/sites/wwwroot/
?
Azure DevOps
应用服务
答案 0 :(得分:0)
是的,从虚拟应用程序和目录指向“公共”的配置是正确的过程: 默认情况下,App Service将Web请求定向到您的应用程序代码的根目录。例如,Laravel从public子目录开始。如果您想访问您的应用,可以在http://example-site.com/public处进行访问,但是您确实想将http://example-site.com定向到公共目录。 确保正确设置了默认文档(index.php)。
-<action type=”Rewrite” url=”index.php” appendQueryString=”true” />
因此进入您的公用文件夹,并在此行创建一个web.config文件 -- 如果配置全部完成,请缩小问题范围,并在可行的情况下尝试重新启动应用程序,看看是否有帮助。
答案 1 :(得分:0)
我知道这是一个较晚的答复。.但是我找到了解决方案。在您的Webapp中,配置一个虚拟应用程序并将其指向site \ wwwroot,然后在为Azure App Service Deploy配置任务时在Azure管道中,在其中设置虚拟应用程序。我已经测试过并且可以正常工作。
J