使用docker-compose为php设置redis会话处理程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker-compose为php设置redis会话处理程序相关的知识,希望对你有一定的参考价值。
我以为redis会在redis conf中绑定到我的php容器,但它失败了:
# Creating Server TCP listening socket phpfpm:6379: bind: Address not available
如果我执行localhost,则会话缓存不起作用。我假设因为redis服务器拒绝连接。我正在寻找redis.conf文件和php.ini文件中需要的内容。这是我认为它应该是:
php.ini
session.save_handler = redis
session.save_path = "tcp://redis:6379"
redis.conf
bind localhost phpfpm
我不知道我是否理解你的问题......
当我遇到网络问题时,发生了这种情况,您能举一个.YML配置示例吗?
php:
image: php:7.1-fpm-alpine
#build: php
networks:
- internal_network
volumes:
- ../html:/var/www/html
restart: always
redis:
image: redis:4-alpine
environment:
#- REDIS_PASSWORD=${REDIS_PASSWORD}
- REDIS_PASSWORD=YOUR_REDIS_PASSWORD
command: redis-server --appendonly yes
volumes:
- ../data/redis:/data
networks:
- internal_network
nginx:
image: nginx:1-alpine
ports: #only if traefik is disabled
- 80:80 #only if traefik is disabled
volumes:
- /etc/localtime:/etc/localtime:ro
- ./nginx/conf.d:/etc/nginx/conf.d
- ../html:/var/www/html
networks:
- internal_network
- external_network
扩展程序是否已安装?你使用build命令吗?
./php/Dockerfile
FROM php:7.1-fpm-alpine
RUN echo http://dl.alpinelinux.org/alpine/latest-stable/community/ >> /etc/apk/repositories
&& apk add --no-cache shadow curl vim zlib-dev autoconf g++ make re2c
&& pecl install -o -f redis
&& docker-php-ext-enable redis.so
&& pecl clear-cache
你不需要任何其他东西。您的redis必须位于docker网络内,而不是暴露在互联网上
默认情况下,如果未指定“bind”配置指令,则Redis将侦听来自服务器上可用的所有网络接口的连接。可以使用“bind”配置指令仅侦听一个或多个选定的接口,然后是一个或多个IP地址。
例子:
bind 192.168.1.100 10.0.0.1 bind 127.0.0.1 :: 1
~~~警告~~~如果运行Redis的计算机直接暴露在互联网上,绑定到所有界面是危险的,并且会将实例暴露给互联网上的每个人。因此,默认情况下,我们取消注释以下绑定指令,这将强制Redis仅侦听IPv4回溯接口地址(这意味着Redis将只能接受来自运行到其运行的同一台计算机的客户端的连接)。
如果你确定你想要你所有的界面听到所有接口只是评论下面的线。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~绑定127.0.0.1
以上是关于使用docker-compose为php设置redis会话处理程序的主要内容,如果未能解决你的问题,请参考以下文章
Red Hat Enterprise 8.4 二进制 Install docker&docker-compose
在docker python中缺少环境变量:3使用docker-compose
Github 行动 |自托管(通过 docker)|设置 PHP 7.3