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 配置,浏览器访问:
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、再次使用浏览器访问并登录:
6、使用 Redis 客户端工具查看:
$ redis-cli
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:endg17s3n5a4tm82lilkbvgkq4"
2) "PHPREDIS_SESSION:cbid5s9akoqr9f4j9r1cng983lfmmahi"
可以看到 PHP 进程的 Session 信息已经保存到 Redis~~~
评论区