apache memcache php phpize php支持memcache扩展

14 篇文章 0 订阅

上篇文章写了centos下编译安装lamp,这次写一下如果支持memche

memcached 的工作原理

首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。


安装memcache需要安装libevent支持,

如果没有安装会提示If it's already installed, specify its path using --with-libevent=/dir/

所以要安装libevent  下载libevent

我把所有的编译包都放在了soft下

[root@localhost soft]# tar -zvxf libevent-1.4.9-stable.tar.gz
[root@localhost soft]# cd libevent-1.4.9-stable
[root@localhost libevent-1.4.9-stable]# ./configure --prefix=/usr/local/libevent
[root@localhost libevent-1.4.9-stable]# make
[root@localhost libevent-1.4.9-stable]# make install
我是把libevent安装到了/usr/local/libevent下了

然后安装memcached服务

[root@localhost soft]# tar -zvxf memcached-1.2.6.tar.gz
[root@localhost soft]# cd memcached-1.2.6
[root@localhost memcached-1.2.6]# mkdir -p /usr/local/memcached
[root@localhost memcached-1.2.6]#./configure --prefix=/usr/local/memcached/ --with-libevent=/usr/local/libevent/
[root@localhost memcached-1.2.6]#make
[root@localhost memcached-1.2.6]#make install
在启动memcache时会遇到如下的错误
[root@crs2 memcached-1.4.5]#  /usr/local/memcached/bin/memcached -p 11211 -l 127.0.0.1 -d -u nobody -P /var/run/memcached.pid -m 64M -c 1024

./memcached: error while loading shared libraries: libevent-2.0.so.2: cannot open shared object file: No such file or directory

解决方法

[root@localhost memcached-1.2.6]# LD_DEBUG=libs /usr/local/memcached/bin/memcached -v
      9939:     find library=libevent-1.4.so.2 [0]; searching
      9939:      search cache=/etc/ld.so.cache
      9939:      search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64  (system search path)
      9939:       trying file=/lib64/tls/x86_64/libevent-1.4.so.2
      9939:       trying file=/lib64/tls/libevent-1.4.so.2
      9939:       trying file=/lib64/x86_64/libevent-1.4.so.2
      9939:       trying file=/lib64/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/tls/x86_64/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/tls/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/x86_64/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/libevent-1.4.so.2
      9939:
/usr/local/memcached/bin/memcached: error while loading shared libraries: libeve  nt-1.4.so.2: cannot open shared object file: No such file or directory

明显是查找libevent-1.4.so.2查找不到,所以需要创建一个软连接

[root@localhost memcached-1.2.6]# ln -s /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
具体的是创建到什么位置,以红色trying file文件的红色字体为准


启动参数解释

-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。

查看memecached时候启动守护进程

[root@localhost memcached-1.2.6]# ps -ef | grep 11211

nobody    9942     1  0 18:55 ?        00:00:00 /usr/local/memcached/bin/memcached -p 11211 -l 127.0.0.1 -d -u nobody -P /var/run/memcached.pid -m 64M -c 1024
root     10012  2665  0 19:05 pts/0    00:00:00 grep 11211


到此说明memcach服务安装完成,下一步安装php的memcache的扩展了

php的memcache扩展有两个版本,一个是 memcache(下载地址),另一个是基于libmemcached-0.42.tar.tarmemecached1.0.2版本

 网上查的资料是说前一个是原生的,后一个比前一个功能更强大。比较推荐使用基于libmemcahced 库的memcached扩展。

支持memcache提供的CAS操作,稳定性和效率也更好。

我这里把两个安装都安装了,安装如下:

1、安装php的memcache扩展

[root@localhost soft]# tar -zxvf memcache-3.0.8.tgz
[root@localhost soft]# cd memcache-3.0.8
[root@localhost soft]#  /usr/local/webserver/php5/bin/phpize
[root@localhost soft]# ./configure --with-php-config=/usr/local/webserver/php5/bin/php-config
[root@localhost soft]# make
[root@localhost soft]# make install
好了,如果中间没有出错的话,到此php的memcache就安装完成了,在make install的时候,会提示你把memcache.so安装的路径如:

installing   /usr/local/webserver/php5/lib/php/extensions/no-debug-non-zts-20090626/

然后修改配置文件,让php支持memcache扩展,在php.ini的结尾加上

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

保存退出,然后重启apache,查看phpinfo,就可以看到memcache扩展了

2、基于libmemcached 库的memcached扩展

安装libmemcached

[root@localhost soft]#  mkdir /usr/local/libmemcached
[root@localhost soft]#  tar -zvxf libmemcached-0.42.tar.gz 
[root@localhost soft]# cd libmemcached-0.42
[root@localhost libmemcached-0.42]# ./configure --prefix=/usr/local/libmemcached/ --with-memcached
[root@localhost libmemcached-0.42]# make
[root@localhost libmemcached-0.42]# make install
安装 memcached

[root@localhost soft]# tar -zvxf memcached-1.0.2.tgz
[root@localhost soft]# cd memcached-1.0.2
[root@localhost memcached-1.0.2]# /usr/local/webserver/php5/bin/phpize 
[root@localhost memcached-1.0.2]# ./configure --with-php-config=/usr/local/webserver/php5/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/
[root@localhost memcached-1.0.2]# make
[root@localhost memcached-1.0.2]# make install
好了,如果中间没有出错的话,到此php的memcached就安装完成了,在make install的时候,会提示你把memcached.so安装的路径如:

installing   /usr/local/webserver/php5/lib/php/extensions/no-debug-non-zts-20090626/

然后修改配置文件,让php支持memcache扩展,在php.ini的结尾extension = memcached.so下边加上
extension = memcached.so

保存退出,然后重启apache,查看phpinfo,就可以看到memcached扩展了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值