Ubuntu环境下Nginx+PHP-FPM 8.1连接Docker部署的Redis Stack出现socket error on read socket问题求助
Ubuntu环境下Nginx+PHP-FPM 8.1连接Docker部署的Redis Stack出现socket error on read socket问题求助
大家好,我在Ubuntu本地搭了Nginx+PHP-FPM 8.1的服务,同时用Docker跑了Redis Stack,最近尝试通过Unix socket连接Redis时一直碰到socket error on read socket的问题,折腾半天没搞定,想请各位帮忙排查下问题出在哪。
我的环境配置细节
1. Nginx + PHP-FPM 8.1配置
这是我用来匹配本地多项目域名的Nginx虚拟主机配置:
server { server_name "~^({[a-z]}2\.)*(?<project>\w+)\.(.*)localhost$"; root /home/fw/public_html; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } location ~ /\.ht { deny all; } }
2. Redis Stack的Docker部署命令
我用下面的命令启动Redis Stack容器,挂载了本地数据目录和自定义配置文件:
docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 -v /home/fw/redis/data:/data -v /home/fw/redis/redis.conf:/redis-stack.conf redis/redis-stack:latest
3. Redis自定义配置(redis.conf)
为了用Unix socket连接,我在配置里加了这两行:
unixsocket /run/redis.sock unixsocketperm 770
4. Redis服务器信息
通过info Server拿到的Redis版本和运行环境信息:
# Server redis_version:7.2.4 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:3a23a5ac67fe7008 redis_mode:standalone os:Linux 6.5.0-27-generic x86_64 arch_bits:64 monotonic_clock:POSIX clock_gettime multiplexing_api:epoll atomicvar_api:c11-builtin gcc_version:11.4.0 process_id:9 process_supervised:no run_id:ac8418a9548435ac2a3cad2c5d483b7e578e1420 tcp_port:6379
遇到的问题
现在PHP代码里尝试通过/run/redis.sock连接Redis时,就会抛出socket error on read socket的错误。我已经检查过socket文件的权限,也确认了PHP-FPM的运行用户是否在对应的用户组里,但还是没能解决问题。有没有大佬能帮我分析下可能的原因,或者给点排查方向?
备注:内容来源于stack exchange,提问作者mikakun
相关产品推荐
相关产品推荐

