問題描述
在使用 sail artisan make:migration create_xxx_table
等命令生成的遷移檔案或者模型檔案,用 IDE 開啟時編輯後,儲存檔案時會提示沒有許可權儲存或者無法儲存,如下圖:
問題原因
在構建編排容器時,沒有指定 WWWUSER 與 WWWGROUP,導致 sail 生成的檔案屬於一個名為 1337 的未知使用者,而 IDE 所屬使用者為你的 Ubuntu 預設使用者,所以導致檔案沒有編輯許可權。
解決辦法
先進入專案目錄,執行以下命令來刪除容器(不會刪除資料,放心使用):
sail down
獲取你在 Ubuntu 子系統中的 UID,假設你的使用者名稱為myhui
:
uid myhui
儲存執行結果:
uid=1000(myhui) gid=1000(myhui) groups=1000(myhui),0(root),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev),1001(docker)
開啟.env
檔案,將上述命令生成的UID與所屬使用者組加入以下配置項:
# uid
WWWUSER=1000
# 所屬使用者組
WWWGROUP=myhui
回到 Ubuntu 子系統中,進入專案目錄,執行以下命令啟動容器:
sail up
使用 sail 命令來生成一個檔案驗證生成的檔案許可權是否正確:
sail artisan make:model TestModelNine
結果如下:
發現所屬的使用者已經是 Ubuntu 的預設使用者了,使用編輯器修改檔案,發現可以正常儲存,問題解決。
本作品採用《CC 協議》,轉載必須註明作者和本文連結