2011年(13)
分类: BSD
2011-01-24 01:08:40
应用 memchche代替 php默认的file来存储session,可以或许实现更快的速率,并且很轻易实现多主机共享session的需求。本文扼要 先容一下安装设置的办法
体系 环境 :FreeBSD7.0 , php5.2.0
1.起首安装memcache,由于是在FreeBSD环境 下,以是我们采用 最大略 的ports行动来安装memcache
cd /usr/ports/databases/memcached/
make install clean
ports会主动 探求源举办下载,然后编译安装
安装好memcache以后,编辑 /etc/rc.conf文件,在末了一行加一句 memcached_enable="YES"
然后生涯退出。memcache会随着开机主动 启动,手动启动的下令是:
/usr/local/etc/rc.d/memcached start
好了,如今 memcache已经安装并启动完毕了。
2.安装pecl::memcache扩张,这是php的扩张,安装以后可以应用 Memcache函数库,php手册上有具体的应用法阐发 。
cd /usr/ports/databases/pecl-memcache/
make install clean
安装好以后,会主动 在/usr/local/etc/php/extension.ini 加上一行 extension=memcache.so
用下令查察 一下:
cat /usr/local/etc/php/extensions.ini
假如望见 末了一行有 extension=memcache.so
阐发 已经安装好了,这个时间重新启动一下apache server即可,phpinfo()可以看到memcache扩张的信息。
3.设置session用memcache来存储
编辑 php.ini文件,做如下批改
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
固然 ,也可以在httpd.conf文件中加上,条件是php以模块行动载入,假如是cgi行动无效
php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"
3. 批改设置文件,在 php.ini 中全局设置:
session.save_handler = memcache应用多个 memcached server 时用逗号","离隔,并且 和 文档中阐发 的一样,可以带稀奇 的参数"persistent"、"weight"、"timeout"、"retry_interval" 等等,类似如许的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" 。
4. 启动 memcached:
memcached -d -l 127.0.0.1 -p 11212 -m 128或 启动Memcache的做事器端:
memcached -d -m 100 -u root -l 192.168.36.200 -p 11211 -c 256 -P /tmp/memcached.pid
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
5. 在措施中应用 memcache 来作 session 存储,用例子测试一下:
session_start();6. 用 sessionid 去 memcached 里查询一下:
$memcache = memcache_connect('localhost', 11211);如许的输出,证明 session 正常事变 。
用 memcache 来存储 session 在读写速率上会比 files 时快很多 ,并且在多个做事器必要 共用 session 时会比拟 利便,将这些做事器都设置成应用同一组 memcached 做事器就可以,镌汰 了稀奇 的事变 量。错误是 session 数据都生涯在 memory 中,恒久化方面有所短缺,但对 session 数据来说也不是很大的题目。