公平警告;我甚至不知道Ruby。我只是一起剽竊我給予的一些腳本,並希望他們能夠一起工作。用PHP調用Ruby腳本
背景
我使用Ruby來自動進行一些任務,如一個SVN管理員,和我試圖想達到的任務是製作一個網頁形式,將自動創建一個的存儲庫。
我正在運行的腳本總計大約100-200行,包括內容和類似的東西。我確信代碼還會有其他問題,但目前它正在遇到一個問題。
Ruby腳本本身的作品。我的問題是,當我嘗試從不同目錄中的PHP腳本調用它時,它不起作用。
的目錄結構是這樣的:
Home
.www-docs
makeRepo.php
svn
createNewRepo.php
migrateOne.php // This has yet to cause a problem
RepoUtils.rb // Not currently causing a problem
問題
,我快到的確切的問題是,Ruby腳本停止執行(和不打印錯誤信息,我可以在PHP中的echo
在代碼中的某個特定點上。
我打電話給腳本如下:
chdir("../svn");
echo exec("ruby createNewRepo.rb $name1 $name2 $num")
所以,這絕對是調用腳本。我把打印點在整個劇本,所以我知道它停止在這裏:
print "Point 1"
acl = File.new(@@aclfile, "a")
print "Point 2"
@@aclfile
是一個絕對路徑,而不是相對的,所以我不認爲單單是問題。
上述代碼將最終打印Point 1
(並且之後沒有任何內容)。
我在做什麼錯?
謝謝!
'chdir('svn')'是可疑的。如果這是你真正的代碼,那應該是'chdir('../ svn')'。 – 2013-02-25 01:12:33
這很可能是一個權限問題。運行在哪個用戶的Web服務器?該用戶將被用於運行Ruby腳本。如果該用戶無權訪問您嘗試訪問的文件或目錄,則Ruby將退出,並顯示stderror異常,這在PHP中不可見。 – Casper 2013-02-25 01:34:42
@MichaelBerkowski呃,對不起,錯字。 :) – 2013-02-25 01:38:30