2013-08-03 61 views
1

我在這裏非常惱人的問題,我完全失去了。在bash腳本中克隆git從php頁面調用

我只是想從php頁面運行一個bash腳本。

的bash腳本是一個漫長的....所以我創建了調用./mainScript.sh的背景下運行caller.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 /目錄中查找?如果我從終端運行腳本,工作正常嗎?

千恩萬謝

+0

不完全,'.ssh'目錄在那裏創建爲apache的「個人配置文件」。他的路徑很好。這可能會幫助你:[作爲另一個用戶運行一個shell命令或更改Apache的用戶?](http://stackoverflow.com/questions/5797816/run-a-shell-command-as-another-user-or-change- apaches-user) – AmazingDreams

+0

感謝您的回覆,我開始看到當時可能發生的情況,但沒有那個問題真的沒有幫助,或者我沒有看到我可以如何使用它:( – Fuzzybear

+1

它可能會幫助,如果你創建你自己寫的'.ssh',並給出www-data或者你的系統上運行的任何用戶寫入訪問該文件夾 – AmazingDreams

回答

2

所以要在回答中收拾我的意見:

shell腳本現在運行像Apache,因爲git的使用ssh,需要相應的配置文件。其中創建於/var/www; apaches主目錄。 Apache在/var/www中沒有寫權限,因此無法創建這些文件。

要解決,請自行創建/var/www/.ssh目錄,並給www-data(或系統中運行的任何用戶apache)寫入對該文件夾的訪問權限。

接下來,github要求您授權ssh keys。在新創建的/var/www/.ssh目錄中爲apache創建一個新的更安全,並將此密鑰添加到您的github鑰匙串中。