在centos中安装memcache提升性能

背景:使用linux服务器(centos);

前提:使用ssh 登录服务器;

操作:按以下提示执行命令。

一、 下载安装libevent

执行以下命令下载:

分别执行以下命令解压安装:

1

2

3

4
执行以下命令测试是否安装成功,若如截图所示,则安装成功:

5

 

二、下载安装memcached

退回主目录:

执行以下命令下载:

执行以下命令解压安装:

执行以下命令测试是否安装成功,若如截图所示,则安装成功:

6

三、下载安装php_memcache扩展

退回主目录:

执行以下命令下载:

执行以下命令解压安装:

查询服务器文件phpize路径:

7

在memcache-3.0.8目录下,执行以下命令:

查询服务器文件php-config路径:

8

最后执行以下命令完成安装memcache,

若以上执行结果最后部分是以下截图内容,则安装成功:

9

四、配置php.ini

通过浏览器查看服务器的phpinfo内容,找到php.ini文件路径,如下图,

10

使用VIM编辑此文件,在文件最后,新增以下内容,

重启Apache,再次查看phpinfo信息内容,若存在以下内容,则配置成功,

11

五、启动memcache

(注: 可将127.0.0.1 替换成自己服务器的外网IP)

(PS,若以上命令无法启动memcache,尝试忽略最后的-P 参数信息。)

执行以下命令,若结果如截图所示,则启动成功:

12

(注:执行以下命令,结束memcache服务)

 

 

多服务器session共享之memcache(d)共享

为了使多服务器共享SESSION,最简单的方法是将它们的SESSION保存在它们所链接的Memcached服务器上。

目前我所使用的memcache PECL 版本中,可以直接设置 php.ini 来设定自己的 session.save_handler,大致如下:

或者,你也可以在需要链接Memcached服务器的web程序头文件中使用如下类似的代码:

其中,将192.168.1.1替换成你的Memcached服务器的IP地址,11211替换成Memcached服务器监听的端口号(默认是11211)。

这样,只要提供sessionID,就可从Memcached服务器中取出该sessionID所存储的session信息了。 继续阅读“多服务器session共享之memcache(d)共享”

Cross domain PHP Sessions:跨站点Session共享

所谓Cross domain PHP Sessions,即不限于同一域名,不限于同一服务器,不限于同一IP的多个网站共享Session。
这种情况之下的Session共享,是一种极端情况,但却经常遇到。这是因为,我们常常有多站点单点登录,或共用用户数据库。一次登录多站可访问的通行证模式,是普遍受欢迎的方式。
实现的方法如下:
1、首先,你要使用memcache,memcached保存session, 从而能够使得session数据能够保存到不同域名,不同IP的服务器上。
2、其次,保证多站点使用同一SESSIONID。这个方法很简单,只要把源站点的$_COOKIE[‘PHPSESSID’]传给目标站点即可。我们清楚,PHP网站,总会在COOKIE中保存一个名为$_COOKIE[‘PHPSESSID’]变量。所以,只要将这个传给目标站点即可。所以,接下来就是如何传的问题了。
3、建议的方法是,每一个网站建一个专用于跳转的PHP文件。此文件接收GET参数为目标跳转的URL。PHP只要根据参数生成象如下这样的代码即可:
header(‘Location: http://domain.com?sessid=’.urlencode($_COOKIE[‘PHPSESSID’]));
当然,这个PHP页面中,要对跳转的URL有所检测,是不是允许传入$_COOKIE[‘PHPSESSID’]的域名。如果这个PHP文件我们称为siteurl.php,那么,页面中的链接就成了:
http://thisdomain.com/siteurl.php?url=newdomain.php
这样,页面中也就没有$_COOKIE[‘PHPSESSID’]。
4、接受跳转的站点,可以通过以下途径读取这个共享的session.
在session_start()运行之前处理:
if ($_GET[‘sessid’]){
session_id($_GET[‘sessid’]);
}
这样,接受跳转的站点就可以读到已保存的session了

原文链接:http://bardo.iteye.com/blog/916316