gpt4 book ai didi

Git WebHook(PHP)无法访问ruby环境,以apache用户运行jekyll

转载 作者:太空狗 更新时间:2023-10-29 13:01:40 25 4
gpt4 key购买 nike

我的 git 存储库中有一个 post-merge Hook ,它只运行 jekyll 命令。

当我运行 git pull 时,post-merge 运行没有问题。

但是,我已经设置了一个 PHP 文件,它将充当远程的 WebHook:

$pull = `cd .. && git pull`;
echo $pull;

当我访问此文件时,git pull 运行 ( after some initial problems ) 并成功。但是,由于某种原因,post-merge 失败了。如果我查看我的 Apache error_log,我会发现以下错误:


.git/hooks/post-merge:第 5 行:jekyll:找不到命令

这很奇怪,考虑到当我通过 SSH 执行手动 git pull 时,post-merge 成功运行了 jekyll。

如果我按照建议运行,请使用可执行文件的完整路径 here ,我在 error_log 中收到此错误:

/usr/bin/env: ruby​​_noexec_wrapper: 没有那个文件或目录

我通过 RVM 安装了 Ruby。

如何让 apache 用户毫无问题地运行 jekyll

编辑:这是我当前的post-merge:

#!/bin/sh

unset GIT_DIR

source /usr/local/rvm/environments/ruby-1.9.3-p194

/usr/local/rvm/gems/ruby-1.9.3-p194/bin/jekyll

echo "Deployed!"

当我以 apache 用户运行它时,我现在得到这个错误:

Node.js 已安装。

最佳答案

我觉得这个错误很明显:

jekyll: command not found

您应该使用您的 jekyll 命令的完整路径。

whereis jekyll

然后使用完整路径执行命令,例如:

/usr/local/bin/jekyll --params

这是 ruby_noexec_wrapper 问题的解决方案。

/usr/bin/env ruby_noexec_wrapper fails with no file or directory

编辑:

Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available

ExecJS and could not find a JavaScript runtime

关于Git WebHook(PHP)无法访问ruby环境,以apache用户运行jekyll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936027/

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