我正在运行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权限无关的答案。