抱歉,这个问题可能比较愚蠢/基础...
我有目录/var/www/html/logs
。从 /var 到 htmlowner:group
是root:root
并且权限是drwxr-xr-x
。但是“logs”目录有apache:apache
和drwxrwxr--
。在这种情况下,Web 服务器能够写入日志 [实际上不是 Web 服务器,而是来自 php 的自定义函数]
另一个案例是/mnt/d5/logs
尝试在那里写入,但没有成功。/mnt/d5
具有 的root:root
权限drwxr-xr-x
,但是“日志”目录具有 的apache:apache
权限drwxr-xr-x
,与第一种情况相同。
我的问题是,为什么在第一种情况下不获取中间权限?这与 apache 配置的 DocumentRoot 有关吗?
解决当前情况的最佳方法是什么?赋予0777
权利是正确的做法吗?
PS:Centos 6,没有 SELinux
=== 已编辑 ===
$logDir = Yii::app()->params['phantomDir'] .....;
$pipeTo = $logDir . DIRECTORY_SEPARATOR . 'script.log';
DirectoryHelper::createDirectory($logDir);
exec('phantomjs ..with its params... > ' . $pipeTo);
...
public static function createDirectory($path, $mode = 0777)
{
$oldmask = umask(0);
if(file_exists($path) == false) {
mkdir($path, $mode,true);
}
umask($oldmask);
}
答案1
也许组权限是个问题?试试:
chmod 775 /mnt/d5/logs