侧边栏壁纸
博主头像
张种恩博主等级

一个能运维的 JPG 搬运工

  • 累计撰写 703 篇文章
  • 累计创建 60 个标签
  • 累计收到 24 条评论

PHP保存Session到Redis

张种恩
2020-03-11 / 0 评论 / 0 点赞 / 307 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-03-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

PHP 默认是将 Session 信息保存到文件中,那下面就演示一下将 phpMyAdmin 程序的 Session 信息保存到 Redis。

注意哦,这里仅是以 phpMyAdmin 程序做演示,PHP 进程 Session 信息保存位置和程序是无关的。

环境准备

1、参考【搭建基于 FastCGI 协议的 LNMP】搭建好 LNMP。

2、下载 phpMyAdmin,可以官网下载,也可关注文章首部微信公众号发送 #phpMyAdmin 获取 phpMyAdmin 源码包。

3、解压 phpMyadmin 压缩包,将文件夹移动到 /code 目录下:

$ tar xf phpMyAdmin-4.0.5-all-languages.tar.gz
$ mv phpMyAdmin-4.0.5-all-languages /code/phpmyadmin

4、修改 Nginx 配置如下:

$ vim /etc/nginx/conf.d/php.conf
server {
    listen 80; 

    root /code/phpmyadmin;
    location / { 
        index index.php;
    }   
 
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
    }   
}

5、修改 phpMyAdmin 配置:

$ cd /code/phpmyadmin/
$ mv config.sample.inc.php config.inc.php

6、修改 Session 保存目录的权限:

$ chown -R www.www /var/lib/php/session/

7、重载 Nginx 配置,浏览器访问:
image.png

8、输入账号密码登录,然后查看 Session 保存目录:

$ ls /var/lib/php/session/ 
sess_ku8ve5iortrct7hl8ur86g222d55514e

即当前的会话信息已经保存到了此目录。

保存 Session 信息到 Redis

1、安装 Redis 即 PHP 的 Redis 驱动:

$ yum install redis php72w-pecl-redis -y

2、修改 PHP 配置文件:

$ vim /etc/php.ini
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
session.auto_start = 1

3、修改 PHP-FPM 配置文件,注释下面配置:

$ vim /etc/php-fpm.d/www.conf
;php_value[session.save_handler] = files
;php_value[session.save_path]    = /var/lib/php/session

4、启动 Redis 并 重启 PHP-FPM:

$ systemctl start redis
$ systemctl restart php-fpm

5、再次使用浏览器访问并登录:
image.png

6、使用 Redis 客户端工具查看:

$ redis-cli            
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:endg17s3n5a4tm82lilkbvgkq4"
2) "PHPREDIS_SESSION:cbid5s9akoqr9f4j9r1cng983lfmmahi"

可以看到 PHP 进程的 Session 信息已经保存到 Redis~~~

0

评论区