使用docker-compose为php设置redis会话处理程序

时间:2018-03-02 22:00:00

标签: php docker redis docker-compose

我认为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

1 个答案:

答案 0 :(得分:2)

我不知道我是否理解你的问题......

当我遇到网络问题时发生了这种情况,你能举一个.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网络内,而不是暴露在互联网上

Link to conf

  

默认情况下,如果未指定“bind”配置指令,则为Redis   侦听来自所有可用网络接口的连接   服务器。可以只收听一个或多个选定的   接口使用“bind”配置指令,后跟一个   或更多IP地址。

     

示例:

     

bind 192.168.1.100 10.0.0.1 bind 127.0.0.1 :: 1

     

~~~警告~~~如果运行Redis的计算机直接暴露给   互联网,绑定到所有接口是危险的,并将   将实例暴露给互联网上的每个人。所以默认我们   取消注释以下绑定指令,这将强制Redis   只监听IPv4 lookback接口地址(这意味着   Redis只能接受来自运行的客户端的连接   进入正在运行的同一台计算机上。)

     

如果您确定,您希望您不要听到所有人的意见   接口只是评论下面的行。   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~   绑定127.0.0.1