0
我試圖設置一個系統,當我推送到GitHub上的存儲庫時,它會自動在遠程服務器上進行拉取和編譯。我發現了一些非常有用的工具,但我堅持最後一步:執行我的任務,gulp --dist
。如何用shell_exec()觸發一個吞嚥任務?
我使用this excellent PHP script觸發拉,這很好。爲了嘗試添加額外選項AFTER_PULL
,我已經分叉了該存儲庫,該選項在完成後執行shell命令。 Here's my modification(也在下面)。在config.php,我設置如下:
define('AFTER_PULL', 'node ./node_modules/gulp/bin/gulp.js --dist');
似乎並不是永遠火,並沒有錯誤似乎要麼觸發。
我在想這可能是一個權限的事情,但用戶(萬維網數據)有權限在所有必要的目錄中工作。我發現this article detailing how to allow www-data to run without needing a password,但完成這些步驟後,仍然無法使用。
我相信我一定在做一些明顯錯誤的事情,我只是無法看到它。如果我在sudo -Hu www-data
的終端中運行它,該命令將起作用。
...
if (!empty(AFTER_PULL)) {
try{
shell_exec(AFTER_PULL);
}catch (Exception $e) {
fputs($file, $e . "\n");
}
}
...
你嘗試過用完整路徑節點二叉樹? – Peter
我沒有,現在就試試。 – JacobTheDev
@彼得哇,我認爲就是這樣。我知道這很愚蠢。 :) 謝謝! – JacobTheDev