Linux中PHP的Memcache扩展安装

  最开始我先说一句,以下很多的安装路径视每台机器的情况而定,文中的路径是我电脑的路径,大家如果跟我的不一样可以使用find来查找路径。

PHP的Memcache扩展安装分为三个步骤:

第一个步骤是:安装libevent

第二个步骤是:安装Memcached

第三个步骤是:安装PHP的Memcache模块

 

下载软件

所需软件(去以下网址中下载最新版本)

libevent-2.0.19-stable.tar.gz (http://libevent.org/)

memcache-3.0.6.tgz (http://pecl.php.net/package/memcache)

memcached-1.4.13.tar.gz (http://www.danga.com/memcached/)

将文件上传到服务器中,我存放的位置是/usr/local/src/

 

安装libevent

libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。因此很多的服务器可能已经安装了libevent,所以先测试libevent是否已经安装:

# ls -al /usr/lib | grep libevent

 

lrwxrwxrwx.   1 root root       21 7?. 23 01:04 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3

-rwxr-xr-x.   1 root root   108948 6?. 22 19:55 libevent-1.4.so.2.1.3

-rw-r–r–.   1 root root   133014 6?. 22 19:55 libevent.a

lrwxrwxrwx.   1 root root       26 7?. 23 01:04 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3

-rwxr-xr-x.   1 root root    37080 6?. 22 19:55 libevent_core-1.4.so.2.1.3

-rw-r–r–.   1 root root    47248 6?. 22 19:55 libevent_core.a

lrwxrwxrwx.   1 root root       26 7?. 23 01:04 libevent_core.so -> libevent_core-1.4.so.2.1.3

lrwxrwxrwx.   1 root root       27 7?. 23 01:04 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3

-rwxr-xr-x.   1 root root    84228 6?. 22 19:55 libevent_extra-1.4.so.2.1.3

-rw-r–r–.   1 root root   103130 6?. 22 19:55 libevent_extra.a

lrwxrwxrwx.   1 root root       27 7?. 23 01:04 libevent_extra.so -> libevent_extra-1.4.so.2.1.3

lrwxrwxrwx.   1 root root       21 7?. 23 01:04 libevent.so -> libevent-1.4.so.2.1.3

 

如果没有以上的内容,那么你就要安装libevent了,先解压缩libevent-2.0.19-stable.tar.gz,再编译安装:

# cd /usr/local/src

# tar zxvf libevent-2.0.19-stable.tar.gz

# cd libevent-2.0.19-stable

# ./configure –prefix=/usr/local/libevent

# make && make install

安装好可以再用上面的方式检查一下。

 

安装memcached

解压缩 memcached-1.4.13.tar.gz, 编译安装

# cd /usr/local/src

# tar zxvf memcached-1.4.13.tar.gz

# cd cd memcached-1.4.13

# ./configure –prefix=/usr/local/memchached –with-libevent=/usr/local/libevent

# make && make install

 

启动memcached

# /usr/local/memchached/bin/memcached -d start -m 128 -p 11211 -u root

附:

以下是memcache启动、关闭参数:

-p 指定端口号(默认11211)

-m 指定最大使用内存大小(默认64MB)

-t 线程数(默认4)

-l 连接的IP地址, 默认是本机

-d start 启动memcached服务

-d restart 重启memcached服务

-d stop|shutdown 关闭正在运行的memcached服务

-m 最大内存使用,单位MB。默认64MB

-M 内存耗尽时返回错误,而不是删除项

-c 最大同时连接数,默认是1024

-f 块大小增长因子,默认是1.25

-n 最小分配空间,key+value+flags默认是48

值得注意的是重启memcache:

先找到memcache的pid:

# ps -ef|grep memcache

再kill掉进程,再执行启动相关参数的memcache,可以重新设置memcache的占用的内存。

 

安装php的memcache模块

# cd /usr/local/src

# tar zxvf memcache-3.0.6.tgz# cd memcache-3.0.6# /usr/local/php/bin/phpize# ./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir# make && make install

安装完后会有类似这样的提示:

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

把这个路径记住,然后修改php.ini

添加一行

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so

这时候就大功告成了!

 

检查memcache是否正常工作

部署好Memcached之后,需要对Memcached的使用情况进行跟踪:监控Memcached的状态信息、内存使用情况、hit/miss的值。通过对Memcached的监控不仅能立刻了解Memcached出现问题,还能够利用状态信息来分析业务数据的增长并为未来的容量规划提供依据。本文推荐使用memcache.php作为memcache监控来检查memcache是否正常工作以及跟踪使用情况:

到以下这个网址下载这个工具:

http://book.51cto.com/art/201202/314917.htm

将这个文件放到localhost下,并修改以下这部分的内容:

define(‘ADMIN_USERNAME’,’memcache’);  // Admin Username

define(‘ADMIN_PASSWORD’,’password’);   // Admin Password

define(‘DATE_FORMAT’,’Y/m/d H:i:s’);

define(‘GRAPH_SIZE’,200);

define(‘MAX_ITEM_DUMP’,50);

 

$MEMCACHE_SERVERS[] = ‘mymemcache-server1:11211’; // add more as an array

$MEMCACHE_SERVERS[] = ‘mymemcache-server2:11211’; // add more as an array

 

改成:

define(‘ADMIN_USERNAME’,’admin’);       // 我的管理用户名:admin,你可以随便设置

define(‘ADMIN_PASSWORD’,’123456′);      // 我的管理员密码:123456,你可以随便设置

define(‘DATE_FORMAT’,’Y/m/d H:i:s’);

define(‘GRAPH_SIZE’,200);

define(‘MAX_ITEM_DUMP’,50);

 

$MEMCACHE_SERVERS[] = ‘localhost:11211’; // 将前面的mymemcache-server1改成localhost

$MEMCACHE_SERVERS[] = ‘mymemcache-server2:11211’; // 这一行可以删除掉

 

最后打开http//:localhost/memcache.php,查看是否有下图的内容:

 

 

 

 

 

如果没有这内容,重启一下php或者服务器试试,重启之后一般都可以解决了。

 

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/385.html

发表评论