1

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

我只是想从 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/ 目录中查找?如果我从终端运行脚本可以正常工作吗?

非常感谢

4

1 回答 1

2

因此,将我的评论打包成一个答案:

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

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

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

于 2013-08-03T19:28:58.390 回答