IDE 無法編輯並儲存 sail 命令生成的檔案

myhui0926發表於2021-06-04

問題描述

在使用 sail artisan make:migration create_xxx_table等命令生成的遷移檔案或者模型檔案,用 IDE 開啟時編輯後,儲存檔案時會提示沒有許可權儲存或者無法儲存,如下圖:

sail 命令生成的檔案 IDE 無法編輯儲存

問題原因

在構建編排容器時,沒有指定 WWWUSER 與 WWWGROUP,導致 sail 生成的檔案屬於一個名為 1337 的未知使用者,而 IDE 所屬使用者為你的 Ubuntu 預設使用者,所以導致檔案沒有編輯許可權。

解決辦法

先進入專案目錄,執行以下命令來刪除容器(不會刪除資料,放心使用):

sail down

獲取你在 Ubuntu 子系統中的 UID,假設你的使用者名稱為myhui

id 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

結果如下:

使用 Laravel Sail 時, 遇到的各類問題合集

發現所屬的使用者已經是 Ubuntu 的預設使用者了,使用編輯器修改檔案,發現可以正常儲存,問題解決。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
順勢而為

相關文章