84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
我是用的是mac+laravel做开发,php-fpm使用的用户和组是_www,把laravel日志模式改成了daily,虽然storage/logs目录权限已经改成了777,但是每天新生成的日志文件并没有继承这个权限,导致laravel(php-fpm模式)无法写入log,并且不会抛出异常页面,为了解决这个问题,我把logs的所有者和组改成了_www, 但是又导致laravel cli模式的命令没有权限写入log日志而无法执行。请教达人如何解决,有什么办法使用_www用户执行cli
学习是最好的投资!
将_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); } } }
}
将_www加入root用户组,获取root用户组权限,就可以在cli模式下执行脚本
看了评论,是会有权限过高的问题
在logs是目录给_www可读写权限,
要在cli下执行使用_www用户登录,然后执行相应的操作
cli运行模式下,赋予www用户与组权限
class setUserAndGroup{
}