无法使用修改后的配置启动Redis(/ var => / home / redis)

时间:2017-09-21 19:01:31

标签: ubuntu configuration redis

我尝试使用修改后的配置在Ubuntu 16.04上启动Redis 3.2时遇到问题。 /etc/redis/redis.conf中的更改如下:

#logfile /var/log/redis/redis-server.log
logfile /home/redis/logs/redis-server.log
...
#dir /var/lib/redis
dir /home/redis/data

这是journalctl -xe的输出:

run-parts[5853]: run-parts: executing /etc/redis/redis-server.pre-up.d/00_exampl
redis-server[5857]: *** FATAL CONFIG FILE ERROR ***
redis-server[5857]: Reading the configuration file, at line 163
redis-server[5857]: >>> 'logfile /home/redis/logs/redis-server.log'
redis-server[5857]: Can't open the log file: Permission denied
systemd[1]: redis-server.service: Control process exited, code=exited status=1
systemd[1]: Failed to start Advanced key-value store.

正如您所看到的,启动似乎无法在/home/redis目录下执行任何操作,而它由redis用户和组(chown -R redis:redis /home/redis已应用)拥有。

脚注

  • 此配置过去在Debian Wheezy / Jessie和Ubuntu 14.04上运行良好
  • Redis使用默认配置正确启动
  • touchchmod日志文件无法修复
  • 还使用Redis 4(通过Chris Lea ppa)进行测试

1 个答案:

答案 0 :(得分:2)

正如评论中@ h0x91B所解释的那样,您可以启用selinux并查看其是否有效。

那就是说,如果你不想使用selinux,这是一个解决方法:

  1. 修改Redis systemd服务文件/etc/systemd/system/redis.service,设置ProtectHome=no并添加ReadWriteDirectories=-/home/redis

  2. 使用sudo systemctl daemon-reload

  3. 重新加载systemd
  4. 启动Redis sudo service redis-server start
  5. <强>参考