fedora32环境下编译安装redis6.0.8并解决selinux拦截redis启动的记录

原创
2020/10/21 11:35
阅读数 221

系统环境:fedora32-workstation

下载redis:wget -c https://download.redis.io/releases/redis-6.0.8.tar.gz

解压:tar -xvf redis-6.0.8.tar.gz

进入源代码包目录:cd redis-6.0.8

编译安装:make && make PREFIX=/redis install

拷贝redis配置:cp redis-6.0.8/redis.conf /redis

修改redis.conf文件,将pid文件路径及名称设置为redis安装目录下redis_6379.pid。配置文件dir设置为redis安装目录。daemonize no设置为daemonize yes。保存退出。

redis目录下新建pid文件:touch redis_6379.pid

设置目录权限及所有者(若没有相应用户可自行定义):chown -R redis:redis /redis

添加systemd启动文件(注意systemd启动文件用户和组):

[Unit]
Description=Redis
After=network.target

[Service]
Type=forking
PIDFile=/redis/redis_6379.pid
ExecStartPost=/bin/sleep 0.1
ExecStart=/redis/bin/redis-server /redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
#ExecStop=/bin/kill -s QUIT $MAINPID
ExecStop=/redis/bin/redis-cli -p 6379 shutdown
PrivateTmp=true
User=redis
Group=redis

[Install]
WantedBy=multi-user.target

刷新systemd:sudo systemctl daemon-reload

启动redis:sudo systemctl start redis

报错:

解决方法1:关闭selinux(废话)

解决方法2:设置selinux上下文,并刷新安全上下文。相关selinux参考资料:https://www.systutorials.com/docs/linux/man/8-redis_selinux/

sudo semanage fcontext -a -t redis_exec_t '/redis/bin(/.*)?'

sudo semanage fcontext -a -t redis_var_run_t '/redis/bin(/.*)?'

restorecon -R -v /redis

重新启动redis服务sudo systemctl restart redis,成功,检查redis服务,状态正常,收工。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部