这个方法仅适用于类Linux系统。不适用于Windows系统。通常网站都需要保存用户的会话信息,也就是Session。默认情况下,php会使用Files方式存储Session信息,这对经常有用户登录或者其它操作的大网站来说,这肯定是一个需要优化的地方。
为什么使用/dev/shm来存储?有什么好处?
/dev/shm是Linux的临时文件系统格式:tmpfs,"主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。"换句话说,你可以不用安装Memcache就可以使用内存来存储Session信息了。
好了,开始动手吧。好很简单,只需要两步:
首先,确定你的系统有/dev/shm这个目录(如果不是很特别,一般都会有的)。
|
df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 9.1G 9.7G 49% / tmpfs 512M 4.0K 512M 1% /dev/shm |
如上所示,如果在Mounted on这列出来有/dev/shm就表示支持shm了。以上这个VPS的shm目录大小是512M。这个值可以手工修改大小。下面再说。
然后,修改php.ini。假设的你php.ini在/etc/php.ini
|
vi /etc/php .ini |
找到
|
;session.save_path = "/tmp" |
修改为:
|
session.save_path = "/dev/shm" |
保存存并退出。
如果你是使用Nginx+php-fpm,那么你还需要重启php-fpm
|
php-fpm restart |
注意哦,php-fpm reload是不行的,一定要restart.
好了,就是这样啦。
对了,说下如何手工调整/dev/shm大小,下面的例子演示把/dev/shm大小修改为1G:
|
vi /etc/fstab tmpfs /dev/shm tmpfs defaults,size=1024M 0 0 umount /dev/shm mount /dev/shm |
常见的还有其它的方式,如:使用数据库存储Session,DZ就是这样做的,如果使用数据库存储的话,建议SESSION表使用内存表。还有一种方式就是使用Memcached了。
(责任编辑:ken)