84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
我是用的是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{
}