2011-03-01 56 views
1

我有一個叫做ant -buildfile /some/where/build.xml的shell腳本當用PHP腳本調用SVNANT腳本失敗

工作正常。當我嘗試執行('shellScript');或exec('ant -buildfile /some/where/build.xml');它會失敗。我用shell腳本和命令嘗試了passthru,system,pcntl_exec,popen和shell_exec。

構建腳本使用SVN並檢出一些文件。那是失敗的地方。在螞蟻腳本輸出中,我得到: checkoutTrunk: [svn] started ... [svn]失敗!

當我從SSH運行命令或shell腳本時,一切正常。爲什麼從PHP腳本中調用會阻止結帳工作?

回答

1

在無處可去之後,我將它試圖執行的命令改爲'id'。我發現PHP以不同於我想象的用戶身份運行。當我以該用戶的身份登錄時,由於無法寫入目錄而導致運行該命令時出現錯誤。一旦我改變了這些目錄的權限,我就可以使用SSH作爲PHP用戶運行該命令。我可以做到這一點後,它也從PHP腳本中工作。