php - Redis 没有在 Docker 容器中保存 PHP 会话
问题描述
我一直在尝试实现 PHP 和 Redis 之间的会话处理程序。我已经配置了所有东西(根据我的知识和理解)并且没有这样的错误。但是,我仍然无法看到在 Redis 中为 PHP 代码生成了任何会话。
我的 PHP 代码:
<?php
session_start();
$_SESSION['count']=(isset($_SESSION['count']))?$_SESSION['count']+1:1;
$json['time ']= date(' Y-m-d H:i:s');
$json['ip ']=$_SERVER['REMOTE_ADDR'];
$json['count '] = $_SESSION['count'];
echo json_encode($json);
?>
PHP 和 Redis docker-compose.yml 条目如下:
php:
image: php:7.1-fpm-alpine
build: './.setup/php/'
volumes:
- ./public_html/:/var/www/html/
- ./.setup/php/php.ini:/usr/local/etc/php/php.ini
- ./.setup/php/docker-php-ext-redis.ini:/usr/local/etc/php/conf.d/docker-php-ext-redis.ini
links:
- redis:cacheserver
networks:
public_net:
ipv4_address: ${PHP_IP}
redis:
build: ./.setup/cache
networks:
public_net:
ipv4_address: ${REDIS_IP}
container_name: cacheserver
PHP 的 Dockerfile:
FROM php:7.1-fpm-alpine
RUN echo http://uk.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 的 Dockerfile:
FROM redis:3.2-alpine
COPY conf/redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
EXPOSE 6379
php.ini 和 docker-php-ext-redis.ini 的内容:
extension=redis.so
我试图将以下条目放入 php.ini,但是,它抛出了一个错误,截至目前我评论了它们:
#session.save_handler = redis
#session.save_path = tcp://192.168.0.24:6379
错误:
警告:session_start():找不到保存处理程序“redis”-第 2 行 /var/www/html/index.php 中的会话启动失败
Redis.conf 文件只有以下条目来接收来自任何地方的请求:
绑定 0.0.0.0
现在我不知道,有什么问题,最重要的是,我不知道他们俩将如何沟通。在我的 docker-compose.yml 文件中,我已经配置了一个固定网络并为两者配置了一个静态 IP。
请有任何建议。
解决方案
推荐阅读
- pine-script - 这行“a=0.0,a := nz(a[1], high)”会发生什么
- r - 如何在 R Shiny 中验证 auth0 令牌并处理错误?
- mysql - 在 MySQL 中管理分层数据以跟踪层级的最佳方法
- django - 我如何在Django中获取用户名的第一个和第二个字母{{Post.author.username.0} }
- c# - 匹配正则表达式中的 Unicode 字符
- wordpress - 使用 add_rewrite_rule 时 WP Rocket 不会缓存
- java - 嵌套 If 语句不更新变量
- c++ - 是否可以使用 C++ 宏来生成代码块?
- python - message.content 或 ctx.content 在 selfbot 中不起作用
- python - 将arcgis“环”转换为纬度和经度?