现象
更新前端包时,html2文件导致前端500错误,使用html文件前端正常。
对比发现,文件的权限不一致。文件权限设置错误:服务器上的文件或目录权限设置不正确也会导致500错误。例如,如果Web服务器没有权限访问某个文件或目录,则无法完成请求并返回500错误。
解决方法
项目前端未使用容器,直接按照步骤1修改前端目录下所有文件的权限,正常执行。
1、linux上前端打包文件设置权限 chmod -R 777 文件名称
2、使用docker exec -it -u root nginx bash 命令进入docker容器将挂载的目录也设置权限(同1)
3、修改nginx.conf文件,在第一行新增【user root; 】,如已配置可将其他用户改成root
chmod命令
1、chmod命令解析
chmod 用3个数字来表达对用户(文件或目录的所有者),用户组(同组用户),其他用户的权限。
如:chmod 777 /test
数字7是表达同时具有读,写,执行权限:
读取--用数字4表示;
写入--用数字2表示;
执行--用数字1表示;
按照规则,如你想设置/test目录的权限为:
对用户可读可写:4(读取)+ 2(写入)= 6 ;
对用户组可读可执行:4(读取)+ 1(执行)= 5 ;
对其他用户仅可读:4(读取);
这样就可以用命令:chmod 654 /test
具体说明:
有只读权限的用户不能用cd进入该目录:还必须有执行权限才能进入;
有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件;
必须有读和执行权限才可以ls列出目录清单,或使用cd命令进入目录;
有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此;
几种常用权限实例:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
2、实例
修改某个目录下的所有文件的权限,包括子目录中的文件,例子如下:
# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx
其中,参数-R表示启动递归处理。