我尝试使用修改后的配置在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
已应用)拥有。
脚注
touch
和chmod
日志文件无法修复答案 0 :(得分:2)
正如评论中@ h0x91B所解释的那样,您可以启用selinux
并查看其是否有效。
那就是说,如果你不想使用selinux
,这是一个解决方法:
修改Redis systemd
服务文件/etc/systemd/system/redis.service
,设置ProtectHome=no
并添加ReadWriteDirectories=-/home/redis
使用sudo systemctl daemon-reload
sudo service redis-server start
<强>参考强>