Я пытался достичь обработчик сеанса между 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
Dockerfile для PHP:
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
Dockerfile для Redis:
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' - сессия
Ошибка запуска в /var/www/html/index.php в строке 2
Файл Redis.conf имеет только следующую запись для получения запроса из любого места:
bind 0.0.0.0
Теперь я не знаю, в чем проблема, главное, я не понимаю, как они оба будут общаться. В моем файле docker-compose.yml я настроил фиксированную сеть и настроил статический IP-адрес для обоих.
Любое предложение, пожалуйста.