在Azure WebApps上部署Lucee应用程序



我是Azure WebApps的新手,需要一些帮助。

我已经创建了一个使用Linux操作系统、Java 8和Tomcat 9的Azure WebApp。我正在尝试部署在Lucee上运行的Mura应用程序。

从这个在Windows上完成的Azure WebApps上的Mura CMS示例中,我创建了一个包含Mura代码的ROOT.war和一个包含WEB.xml和lucee.jar的WEB-INF文件夹。

我现在正试图部署战争文件,但它似乎不起作用。

我已经将.war文件FTP到/home/site/wwwroot/webapps/,上面的消息来源神奇地建议将war文件解压缩,不确定这是否是Windows的东西?这并没有发生。

我已经尝试了这里提到的许多不同的选项将文件部署到应用程序服务,但似乎什么都不起作用。

我在BASH中尝试了以下操作,得到了这个错误无法从文件"中读取数据/home/site/wwwwroot/webapps/ROOT.war">可能是因为在BASH中不存在该路径。

curl -X POST -u <username> --data-binary @"/home/site/wwwroot/webapps/ROOT.war" https://<appname>.scm.azurewebsites.net/api/publish&type=war

curl -X POST -v -u  <username> --data-binary @/home/site/wwwroot/webapps/ROOT.war https://<appname>.scm.azurewebsites.net/api/wardeploy

另一种选择是通过Powershell重新调整类似的错误来完成找不到路径'/home/site/wwwwroot/webapps/ROOT.war'的一部分。

Publish-AzWebapp -ResourceGroupName <groupName> -Name <appname> -ArchivePath /home/site/wwwroot/webapps/ROOT.war

我发现它是从存储帐户部署的另一个示例。运行此操作将创建一个新文件app.war,其中到/home/site/wwwwroot 的字节为零

curl -X POST -u <username> https://<app-name>.scm.azurewebsites.net/api/publish -d '{"packageUri": "https://<storageName>.blob.core.windows.net/blob-container/ROOT.war?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3"}'

然后,我用FTP发送了一个基本项目,其中有如上所述的WEB-INF文件夹和一个简单的index.cfm页面,但我收到了一个500错误Servlet.init((for Servlet[CMMLServlet]抛出异常

我不确定这是否应该在Linux操作系统、Java 8和Tomcat9设置上运行,或者我是否应该让步,在Windows机器上试用。

如有任何指导,我们将不胜感激。

感谢@david-I发布您的建议,以帮助其他社区成员解决类似问题。

"使用windows机器的问题是,当前您没有能够将存储装载到它上,因此我相信为什么要探索Linux可以实现这一点。下面有一个选项设置>配置>路径映射>新的azure存储装载。也就是说,我刚刚尝试在windows机器上部署它,花了10分钟它奏效了";

有关更多信息,请参阅此Azure博客

我能够通过BASH使用以下命令实现这一点。这是我在最初的帖子中发布的命令之一,然而,这不仅仅是我需要根据文档添加的用户名,我还需要添加密码。希望这能帮助任何陷入困境的人。您可以在FTPS凭据选项卡下的部署中心下或通过概述找到用户名/密码,并下载获取发布配置文件

curl -X POST -v -u  "<username>:<password>" --data-binary @/home/site/wwwroot/webapps/ROOT.war https://<appname>.scm.azurewebsites.net/api/wardeploy

最新更新