【问题标题】:Cloning git in bash script called from php webpage在从 php 网页调用的 bash 脚本中克隆 git
【发布时间】:2013-08-04 19:43:42
【问题描述】:

我有一个非常烦人的问题,我完全迷失了。

我只是想从一个 php 页面运行一个 bash 脚本。

bash 脚本很长....所以我创建了一个 caller.sh,它调用 ./mainScript.sh 在后台运行如下:

nohup /bin/bash /home/test/customcoincode/CoinCreationBashFile.sh $coinName $coinNameAbreviation $blockReward $blockSpacing $targetTimespan $totalCoins $seedNode $nameSeedNode $headline >> /tmp/BASH2log.txt 2>&1 &

在阅读我的日志文件时,似乎有些变量没有被传入......

在以下代码行:

echo "Creating New Coin - Downloading code base repo"
echo "$localFolder/$coinName"
mkdir -p "$localFolder/$coinName";
cd "$localFolder/$coinName"
git clone "$baseRepository" "$localFolder/$coinName"
echo "Made it here 1"

我得到以下输出:

Creating New Coin - Downloading code base repo
/home/test/Foocoin
cloning into '/home/test/Foocoin'
could not create directory '/var/www/.ssh'
host key verification failed
blah blah ....

为什么它在 /var/www/ 目录中查找?如果我从终端运行脚本可以正常工作吗?

非常感谢

【问题讨论】:

  • 不完全是,.ssh 目录在那里创建为 apache 的“个人配置文件”。他的路很好。这可能会对您有所帮助:Run a shell command as another user or change Apache's user?
  • 如果您自己创建.ssh 并提供www-data 或系统上运行apache 的任何用户对该文件夹的写入权限,这可能会有所帮助。
  • 因为似乎有人删除了他/她提供 3/4 解释的评论:shell 脚本在用户 apache 运行时执行。 /var/www 是他/她/它的主目录。
  • 我会为 apache 创建新的 ;) saver 这样。
  • 你先生是神!谢谢你解决了我所有的问题,现在一切正常:) 非常感谢

标签: php linux bash github ssh


【解决方案1】:

所以把我的cmets打包成一个答案:

shell 脚本现在作为 apache 运行,因为 git 使用 ssh,需要相应的配置文件。创建于/var/www; apache 的主目录。 Apache 在/var/www 中没有写入权限,因此无法创建这些文件。

要解决此问题,请自行创建 /var/www/.ssh 目录并授予 www-data(或您系统中运行 apache 的任何用户)对该文件夹的写入权限。

接下来,github需要你授​​权ssh keys。在新创建的/var/www/.ssh 目录中为apache创建一个新的,并将此密钥添加到您的github钥匙串中会更安全。

【讨论】:

    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2017-02-09
    • 2019-06-07
    • 2018-02-20
    • 2015-09-04
    • 2018-12-12
    相关资源
    最近更新 更多