IDE 无法编辑并保存 sail 命令生成的文件

Laravel框架
420
0
0
2022-04-20

使用 sail 生成的文件 IDE 无法编辑保存

问题描述

在使用 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与所属用户组 ID 加入以下配置项:

# uid
WWWUSER=1000
# 所属用户组
WWWGROUP=1000

回到 Ubuntu 子系统中,进入项目目录,执行以下命令启动容器:

sail up

使用 sail 命令来生成一个文件验证生成的文件权限是否正确:

sail artisan make:model TestModelNine

结果如下:

使用 Laravel Sail 时, 遇到的各类问题合集

发现所属的用户已经是 Ubuntu 的默认用户了,使用编辑器修改文件,发现可以正常保存,问题解决。