在存储中,新建目录与创建文件时,同时使用 root 与 nginx 用户时,报错:fopen(/webtv/wangjie/ccp_api/images/2021/03/08/1615170408.5917.1243625051.png): failed to open stream: Permission denied

1、在运行命令行脚本时,使用 root 用户创建目录:/webtv/wangjie/ccp_api/images/2021/03/08,创建文件:1615170036.5115.2027450777.png。目录的所有者与所属的组皆为 root。如图1

图1

2、在运行 HTTP 接口时,使用 nginx 用户在目录:/webtv/wangjie/ccp_api/images/2021/03/08 下创建文件:1615170408.5917.1243625051.png。报错:fopen(/webtv/wangjie/ccp_api/images/2021/03/08/1615170408.5917.1243625051.png): failed to open stream: Permission denied。如图2

图2

3、最终决定在创建目录后,将目录的所有者与所属的组修改为 nginx。如图3

图3

    // return chmod($path, $mode);
    @chmod($path, $mode);
    $user = 'nginx';
    @chown($path, $user);
    @chgrp($path, $user);
    return true;

4、删除目录:/webtv/wangjie/ccp_api/images/2021/03/08。在运行命令行脚本时,使用 root 用户创建目录:/webtv/wangjie/ccp_api/images/2021/03/08,创建文件:1615173793.3843.742805318.png。目录的所有者与所属的组皆为 nginx。符合预期。如图4

图4

5、在运行 HTTP 接口时,使用 nginx 用户在目录:/webtv/wangjie/ccp_api/images/2021/03/08 下创建文件:1615173932.3359.493433255.png 成功。符合预期。如图5

图5

6、在运行 HTTP 接口时,使用 nginx 用户创建目录:/webtv/wangjie/ccp_api/images/2021/03/10,创建文件:1615340979.3862.490335317.png。目录的所有者与所属的组皆为 nginx。符合预期。如图6

图6

7、在运行命令行脚本时,使用 root 用户在目录:/webtv/wangjie/ccp_api/images/2021/03/10 下创建文件:1615341025.4625.492305521.png 成功。符合预期。如图7

图7

永夜