session在服务端的存储

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/caiqiiqi/article/details/79350381

文件存储sessions

需要在先确定apache的php.ini的位置<然后编辑这个php.ini文件。


caikiki@ubuntu:/var/www/wordpress-4.6.5$ locate php.ini
/etc/php/7.0/apache2/php.ini
/etc/php/7.0/cgi/php.ini
/etc/php/7.0/cli/php.ini
/etc/php/7.0/fpm/php.ini
/usr/lib/php/7.0/php.ini-development
/usr/lib/php/7.0/php.ini-production
/usr/lib/php/7.0/php.ini-production.cli

caikiki@ubuntu: sudo vi /etc/php/7.0/apache2/php.ini

设置


session.save_handler = files

session.save_path = "/var/lib/php/sessions"

然后重新载入apache2 sudo service apache2 reload

这样才能将session以files形式存在服务器上。其实也只是一个id而已,会话这个概念的实体还是要在内存中为这个sessionid服务的进程才能得以体现。


caikiki@ubuntu:~$ sudo ls -al /var/lib/php/sessions
total 8
drwx-wx-wt 2 root     root     4096 Jan 21 10:42 .
drwxr-xr-x 4 root     root     4096 Jan 17 08:07 ..
-rw------- 1 www-data www-data    0 Jan 21 10:42 sess_h6hvi7nll3esbic26unu9i5ru2

另外session还可以用redis来存储。

redis存储sessions

需要先安装php的redis扩展。不知道包名的话,先搜一下,


caikiki@ubuntu:~$ sudo apt search redis|grep redis|grep php


WARNING: apt does not have a stable CLI interface. Use with caution in scripts.


libphp-predis/xenial 0.8.3-1 amd64
php-nrk-predis/xenial 1.0.0-1 amd64
php-redis/xenial,now 2.2.7-389-g2887ad1+2.2.7-1 amd64 [installed]

然后安装一下这个php-redis

编辑/etc/php/7.0/apache2/php.ini 文件。添加这两句


session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379?auth=xxxyyyzzz"

然后


caikiki@ubuntu:/var/lib/php/sessions$ redis-cli -h 127.0.0.1
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth xxxyyyzzz
OK
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:h6hvi7nll3esbic26unu9i5ru2"
127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:h6hvi7nll3esbic26unu9i5ru2"
2) "PHPREDIS_SESSION:po3abp5b1u67deejht10vmp6n7"

注意这个redis存储会有超时的,过一段时间不用这个session,就会被php的垃圾回收删除掉。


127.0.0.1:6379> keys *
1) "PHPREDIS_SESSION:fc3mq8bocahu1b726ehbv0ftn6"
127.0.0.1:6379> keys *
(empty list or set)

参考:

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for-php-on-ubuntu-14-04

http://blog.csdn.net/u011250882/article/details/48625179

展开阅读全文

没有更多推荐了,返回首页