gpt4 book ai didi

php - 'git pull' 命令可以从终端运行,但不能通过 git 存储库 Hook 使用 php shell_exec()

转载 作者:IT王子 更新时间:2023-10-29 01:02:04 27 4
gpt4 key购买 nike

我在我的 github 存储库中创建了一个 webhook,它发布在我的实时服务器上的 Hook url 上,以运行 pull 命令来更新我在服务器上的 repo 文件。

问题是我创建的 Hook 文件在/var/www/site/web/hookfile.php 中(发布请求去那里。我也收到正文响应)

我的 repo 文件在/var/www/git-repo/

当我将任何内容推送到我的 github 存储库时,它不会更新 git-repo。我使用终端及其工作运行此命令。

cd /var/www/git-repo && git pull

但是通过我的 php 文件它不起作用

shell_exec('cd /var/www/git-repo && git pull')

最佳答案

shell_exec() 无提示地失败,因为只报告 STDOUT 而不是 STDERR。

尝试:

echo shell_exec("cd /var/www/git-repo && /full/path/to/bin/git pull 2>&1");

通常是权限错误,可以通过向执行 php (apache?) 的用户添加权限来修复

chown -R www-agent:www-agent repository/

但也可能是远程存储库的连接错误(身份验证、ssh key ...)。

关于php - 'git pull' 命令可以从终端运行,但不能通过 git 存储库 Hook 使用 php shell_exec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com