【问题标题】:Run PHP script after Azure Web app deployment在 Azure Web 应用部署后运行 PHP 脚本
【发布时间】:2022-01-17 10:54:10
【问题描述】:

我有一个 Azure 应用服务,我想上传/部署一个 .php 文件到它并在上传后立即运行它。

我设法通过 curl 上传它并启动了一个部署后脚本。不幸的是,我不能在其中使用命令“php ...”,因为我在日志中收到如下错误:“/opt/Kudu/Scripts/starter.sh: line 2: exec: php: not found\n”。 如果我将“/api/command”端点与相同的命令一起使用,也会发生同样的情况。我在响应中得到了同样的错误。

在那个环境中似乎不知道 php 可执行文件。 有没有办法通过命令 API 或在部署后脚本中运行 php 脚本?

编辑进一步澄清: 我需要 curl 因为我想使用一个部署器自动运行它,该部署器生成一个 php 文件,然后执行我们的特定部署任务(生成文件夹、符号链接等)。因此,在我在 App 服务上部署该 php 文件后,我需要启动它。到目前为止,curl 是我发现的唯一一个如果操作正确则不需要用户交互的机会。在上传之后,我的意思是在使用“/api/zip/”或“api/zipdeploy/”这两个 SCM/Kudu api 之一之后

提前致谢

【问题讨论】:

  • 请分享更多细节——“上传后”是什么意思?为什么你需要 cURL?
  • 我需要 curl,因为我想使用一个部署器自动运行它,该部署器会生成一个 php 文件,然后执行我们的特定部署任务(生成文件夹、符号链接等)。因此,在我在 App 服务上部署该 php 文件后,我需要启动它。到目前为止,curl 是我发现的唯一一个如果操作正确则不需要用户交互的机会。在上传之后,我的意思是在使用“/api/zip/”或“api/zipdeploy/”这两个 SCM/Kudu api 之一之后
  • 请通过编辑为您的问题添加所有说明
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: php curl azure-web-app-service kudu


【解决方案1】:
  • 您可以使用 WebJob 在 Azure 应用服务实例中运行脚本,无需任何用户交互或充当后台任务。

  • Azure WebJobs SDK 是为了简化许多编程任务。

  • Azure WebJobs SDK 支持的文件类型(脚本或程序)有: .cmd、.bat、.exe、.ps1、.sh .php、.py、.js、.jar

  • 只需调整您的 php 脚本,使其有一个循环,并在您的代码运行之间添加几分钟的睡眠。

  • 连续的 WebJob 将在您的所有实例上运行,即使出现故障,它也会重新启动。

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 2020-05-19
    • 1970-01-01
    • 2014-11-09
    • 2021-12-25
    • 2017-04-07
    • 2016-05-19
    • 2014-03-11
    • 2021-03-01
    相关资源
    最近更新 更多