Passenger Standalone启动Rails5.1失败,如何指定运行用户组?
解决Passenger Standalone指定运行用户组的问题
当然可以指定Passenger使用其他用户组运行,这正是解决你当前问题的关键。下面是具体的实现方法和相关说明:
直接通过启动命令指定
Passenger Standalone支持在启动时通过命令行参数明确指定运行的用户和组,你可以选择一个已经在/etc/group中存在的组(比如你id输出里的everyone、admin等):
passenger start --user my_account --group everyone
这里--user指定运行进程的用户(保持你的账号my_account即可),--group替换成你想使用的合法组名(比如everyone对应的GID是12,已经在系统组里存在)。
为什么会出现这个错误?
从你的id输出能看到,你的主组GID是212373379,但这个GID并没有在/etc/group中对应到具体的组名。Passenger默认会使用当前用户的主组来启动应用进程,当系统找不到这个组的定义时,就会抛出你看到的那个错误。
可选:通过配置文件持久化设置
如果你不想每次启动都输入命令行参数,可以创建一个Passenger配置文件(比如passenger.conf),添加以下内容:
PassengerUser my_account PassengerGroup everyone
然后启动时指定加载这个配置文件:
passenger start --config-file /path/to/passenger.conf
这样就能让Passenger始终使用你指定的合法用户组来运行你的Rails 5.1应用了。
内容的提问来源于stack exchange,提问作者Ariel Valentin
相关产品推荐
相关产品推荐

