問題背景
寶塔面板的計划任務默認執行用戶是root,如果任務里有打印日志的操作,則自動創建的log文件也是root用戶權限,而php的運行用戶是www,對root用戶創建的文件默認沒有寫權限,進而導致程序報錯。
問題場景
此問題常見於laravel、FastAdmin等框架系統。
解決方案
可以使用 su -c 和 -s 搭配操作,為計划任務指定執行用戶,來解決此問題。
su -c " {你要執行的命令} " -s /bin/sh 使用的用戶
// 示例:
su -c " php artisan schedule:run " -s /bin/sh www
