【问题标题】:Calling 'firebase deploy' from PHP via shell_exec() doesn't work通过 shell_exec() 从 PHP 调用“firebase deploy”不起作用
【发布时间】:2016-07-01 13:47:26
【问题描述】:

我正在尝试使用 PHP 使用 Firebase 自动部署托管资产。我试图在 PHP 中使用 shell_exec() 调用“firebase deploy”,但到目前为止我似乎无法让它工作。不返回任何输出,如果我将输出通过管道传输到日志文件,则不会将任何内容写入日志文件。

有没有办法使用 PHP 自动化 Firebase 部署?

(有趣的提示:由于需要从将要推送的实际公共目录中调用“firebase”命令,我猜我需要调用 '/usr/local/bin/firebase deploy' 并传入我的 Firebase 目录的参数想要使用-p 标志推送。这是正确的还是我可以完全省略-p?)

当我手动输入时,Firebase deploy 在命令行上运行良好。

请帮忙!

【问题讨论】:

  • 我认为这与运行脚本的用户有关?我知道您必须登录 CLI 才能使用 firebase 部署文件,也许与此有关?
  • 所以现在我有一个 PHP 调用的 shell 脚本,我什至在其中包含了 Firebase 令牌,它部署良好,将输出写入日志文件。但是当从 PHP 调用时,这个 shell 脚本只是拒绝工作。检查权限,它是可执行的,等等。非常令人沮丧。我错过了什么??我不敢相信这在任何地方都没有记录。没有人自动化他们的 firebase 部署吗?
  • 对我不起作用 exec('PATH=/usr/local/bin:$PATH && firebase deploy --only hosting:sitename', $output);

标签: php firebase firebase-hosting firebase-tools


【解决方案1】:

联系 Firebase 后,他们的一位出色的开发人员帮助了我,他提出了这个建议,这对我很有用:

<!DOCTYPE html>
<html>
<body>
<?php
exec('PATH=/usr/local/bin:$PATH && firebase deploy', $output);
print_r($output);
?>
</body>
</html>

感谢 Firebase 的支持,我得到了这个工作。它基本上与 Apache 和 Web 会话有关。需要 $PATH:

问题与 Web 服务器会话有关。运行这些命令时,他发现输出是“找不到命令”。当 $PATH 不包含所需命令(在本例中为 firebase 和节点)的路径时,将返回此错误。

为了解决这个问题,他必须在当前会话中将此路径添加到 $PATH,这样才能调用“firebase deploy”。

再次感谢 Firebase!

【讨论】:

  • 对我不起作用 exec('PATH=/usr/local/bin:$PATH && firebase deploy --only hosting:sitename', $output);
猜你喜欢
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多