尽管有777并且由apache拥有,但无法写入目录

时间:2018-03-22 18:01:15

标签: php nginx file-permissions fedora selinux

我正在运行nginx(作为linux用户apache),由于某种原因,下面的代码发回错误:

clearstatcache(TRUE, $file);
if (!file_exists(dirname($file))) {
    error::server(E_WARNING, sprintf('Log file directory doesn\'t exist: %s', dirname($file)));
    return;
}
if (!is_writable(dirname($file))) {
    if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
        // POSIX system, get the user
        $uid  = posix_geteuid();
        $user = posix_getpwuid($uid);
        error::server(E_WARNING, sprintf('Log file directory isn\'t writable by %s (%s): %s', $user['name'], $uid, realpath(dirname($file))));
    } else {
        error::server(E_WARNING, sprintf('Log file directory isn\'t writable: %s', realpath(dirname($file))));
    }
    return;
}

这是错误:

Log file directory isn't writable by apache (48): /var/www/api/v1/logs

该目录由用户apache和群组apache拥有,并拥有0777权限。操作系统是Fedora 27(启用SELinux),PHP运行为PHP-FPM 7.2.3。

我的问题: PHP无法写入该目录的原因是什么?

注意:我知道这可能是一个重复的问题,但由于问题的性质,很难找到与linux用户或chmod权限无关的答案。

0 个答案:

没有答案