php – Laradock – 使用 crontab 自動執行會出現 exec: composer: not found 的問題

2023-01-18 修正

Laravel 我寫了一隻 command,透過 schedule 註冊每個小時都要跑這隻程式

透過指令

確實可以執行如 “git pull”, “composer install”, “php artisan optimize”, “npm install” …… 但是透過 crontab 卻會異常,顯示 “exec: composer: not found” 找不到指令的問題。

方法 (一)

PATH: 羅列出 shell 搜尋 使用者 輸入的執行命令所在的目錄

這樣就能順利運行了!

方法 (二) 不建議使用了,僅作參考

以下兩種方法

如果是還沒 Build 專案

首先 Laradock 的專案資料夾會看到 workspace/crontab/laradock,已經寫好了每分鐘執行 php artisan,把它註解掉,因為這個身份是 “laradock”,我們要使用的是 “root”

接著跑起所需要的環境

進入 workspace 修改 crontab

添加這行

這樣就能使用 root 身份執行 schedule 了。

如果已經 Build

註腳掉原本使用者 laradock 的 crontab

增加 root 的 crontab

這樣就可以了。

如果有用到 Git Pull ,因為是自動化的關係,因此要使用 ssh ,請參考這篇網友分享的文章,設定不需要打帳號密碼的方式。

發表迴響