php文件以及cli运行权限问题
PHPz
PHPz 2017-04-11 09:43:53
0
2
347

我是用的是mac+laravel做开发,php-fpm使用的用户和组是_www,
把laravel日志模式改成了daily,虽然storage/logs目录权限已经改成了777,但是每天新生成的日志文件并没有继承这个权限,导致laravel(php-fpm模式)无法写入log,并且不会抛出异常页面,为了解决这个问题,我把logs的所有者和组改成了_www, 但是又导致laravel cli模式的命令没有权限写入log日志而无法执行。
请教达人如何解决,有什么办法使用_www用户执行cli

PHPz
PHPz

学习是最好的投资!

reply all(2)
伊谢尔伦

将_www加入root用户组,获取root用户组权限,就可以在cli模式下执行脚本

 shell下
 usermod -g root _www

看了评论,是会有权限过高的问题

在logs是目录给_www可读写权限,
要在cli下执行使用_www用户登录,然后执行相应的操作

chown _www:_www
将文件的拥有者和用户组修改为_www,赋予_www用户在logs目录的读写权限
root用户权限大于_www用户,root可操作
巴扎黑

cli运行模式下,赋予www用户与组权限

class setUserAndGroup{

    public $user = 'www';
    public $group = 'www';

    public function setUserAndGroup()
    {
        // get uid
        $user_info = posix_getpwnam($this->user);
        if(!$user_info)
        {
            return self::log( "Waring: User {$this->user} not exsits", true);
        }
        $uid = $user_info['uid'];
        // get gid
        if($this->group)
        {
            $group_info = posix_getgrnam($this->group);
            if(!$group_info)
            {
                return self::log( "Waring: Group {$this->group} not exsits", true);
            }
            $gid = $group_info['gid'];
        }
        else
        {
            $gid = $user_info['gid'];
        }

        // set uid and gid
        if($uid != posix_getuid() || $gid != posix_getgid())
        {
            if(!posix_setgid($gid) || !posix_initgroups($user_info['name'], $gid) || !posix_setuid($uid))
            {
                self::log( "Waring: change gid or uid fail.", true);
            }
        }
    }

}

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!