【问题标题】:Cannot run "git clone" from php on a Minimac无法在 Minimac 上从 php 运行“git clone”
【发布时间】:2014-03-07 13:42:53
【问题描述】:

我在 Minimac 10.8.5 上执行 git clone 时遇到问题。

如果我从 shell 执行命令,它就可以工作。 如果我从 php 文件执行相同的命令(通过在网页上按下按钮),我会得到

"error: ssl peer certificate or ssh remote key was not ok while accessing...".

已执行:git config --global http.sslVerify = false

已更改文件 /etc/apache2/httpd.conf 的用户和组

尝试使用 git clone --verbose 执行它

我看到的唯一错误是上面的错误,没有更多信息。 我在哪里或如何找到更详细的日志?

可能是什么原因?

【问题讨论】:

    标签: php macos apache git-clone


    【解决方案1】:

    看起来远程需要通过 ssh 密钥(如 heroku 和 github)或通过 https 使用密码进行身份验证。

    在这两种情况下你都需要这个,你可以先配置你的系统,然后尝试通过 php 运行 git。

    我相信您正在执行某种类型的部署脚本,对吗?如果是这样,您可能需要考虑在第一次部署后使用 git pull。

    【讨论】:

    • 我从本地克隆
    • 你能发送得到这个错误的整个命令吗?
    • 这是系统:Minimac 10.8.5 上的 Safari 浏览器在按下按钮时执行 php。 php使用以下命令调用python: $output = shell_exec('cd /Users/user/gitroot/host && /usr/bin/python /Users/user/gitroot/host/buildAll.py --date ' . $ date . ' --hostdest "/Users/user/builds" --guestdest "E:" --branch ' . $_GET['branch'] . ' > /dev/null 2>/dev/null & ');
    • python 调用其他 2 个 python 导入脚本并调用 buildOnHost.main(argv) 和 buildOnGuest.main(argv)。我现在对 buildOnHost 感兴趣,因为 buildOnGuest 有效。 “在主机上”意味着机器在本地构建并从同一台机器克隆。奇怪的是,如果我在第一个 python 上执行“print 'user:' + os.environ['USER']”,它会打印正确的用户。如果我在第二个 python 上执行它,它会崩溃(或者至少它会在没有日志的情况下停止执行)。
    • 我的错,在第一个 python 上,USER env 变量也是空的。
    【解决方案2】:

    试试这个

    env GIT_SSL_NO_VERIFY=true git pull origin master
    

    【讨论】:

    • 我写过:“已经执行:git config --global http.sslVerify = false”应该做同样的事情
    【解决方案3】:

    编辑:以另一种方式解决。 我发现用正确的用户创建 shell 的唯一方法是通过 ssh 启动进程。所以我做了以下事情,一切都按预期工作。

    <?php
        $cmd = "ssh user@localhost <cmd to execute>";
    shell_exec($cmd);
    ?>
    

    【讨论】:

      猜你喜欢
      • 2020-07-27
      • 1970-01-01
      • 2018-05-31
      • 2019-10-16
      • 2022-01-10
      • 1970-01-01
      • 2019-09-16
      • 2020-01-10
      • 1970-01-01
      相关资源
      最近更新 更多