ssplyh 发表于 2015-11-18 08:26:21

PHP扩展安装memcache模块

  PHP扩展安装memcache模块时间:2010-06-24 15:50:55
  安装环境
RHEL 4
Php 5.2.6
安装环境
RHEL 4
Php 5.2.6
  所需软件
libevent-1.4.6-stable.tar.gz (http://monkey.org/~provos/libevent/)
memcache-2.2.3.tgz (http://pecl.php.net/package/memcache)
memcached-1.2.6.tar.gz (http://www.danga.com/memcached/)
  安装配置
  1. 安装libevent
# tar zxf libevent-1.4.6-stable.tar.gz
# cd libevent-1.4.6-stable
# ./configure --prefix=/usr/local/servers/libevent
# make && make install
  2. 安装memcached
# tar zxvf memcached-1.2.6.tar.gz
# cd memcached-1.2.6
# ./configure --prefix=/usr/local/servers/memcached --with-libevent=/usr/local/servers/libevent
# make && make install
  3. 运行memcached
# /usr/local/servers/memcached -d -m 128 -l localhost -p 11211 -u root
  -d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户;
  如果遇到运行memcached时遇到问题,错误提示如下:
  /usr/local/servers/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
  则运行 LD_DUBUG=libs 就可以知道memcached启动时库的加载路径。具体如下:
  # LD_DEBUG=libs /usr/local/servers/memcached/bin/memcached -v
   10929:   find library=libevent-1.4.so.2 ; searching
   10929:      search cache=/etc/ld.so.cache
   10929:      search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib          (system search path)
   10929:       trying file=/lib/tls/i686/sse2/libevent-1.4.so.2
   10929:       trying file=/lib/tls/i686/libevent-1.4.so.2
   10929:       trying file=/lib/tls/sse2/libevent-1.4.so.2
   10929:       trying file=/lib/tls/libevent-1.4.so.2
   10929:       trying file=/lib/i686/sse2/libevent-1.4.so.2
   10929:       trying file=/lib/i686/libevent-1.4.so.2
   10929:       trying file=/lib/sse2/libevent-1.4.so.2
   10929:       trying file=/lib/libevent-1.4.so.2
   10929:       trying file=/usr/lib/tls/i686/sse2/libevent-1.4.so.2
   10929:       trying file=/usr/lib/tls/i686/libevent-1.4.so.2
   10929:       trying file=/usr/lib/tls/sse2/libevent-1.4.so.2
   10929:       trying file=/usr/lib/tls/libevent-1.4.so.2
   10929:       trying file=/usr/lib/i686/sse2/libevent-1.4.so.2
   10929:       trying file=/usr/lib/i686/libevent-1.4.so.2
   10929:       trying file=/usr/lib/sse2/libevent-1.4.so.2
   10929:       trying file=/usr/lib/libevent-1.4.so.2
   10929:
  然后给libevent-1.4.so.2建立一个链接后再运行memcached:
# ln -s /usr/local/servers/libevent/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2
  4. 安装php的memcache扩展
  可以使用php自带的pecl安装程序
# /usr/local/servers/php5/bin/pecl install memcache
  也可以从源码安装
# tar zxf memcache-2.2.3.tgz
# cd memcache-2.2.3
# /usr/local/servers/php5/bin/phpize
# ./configure --enable-memcache=/usr/local/servers/memcached --with-php-config=/usr/local/servers/php5/bin/php-config --with-apxs2=/usr/sbin/apxs
# make && make inst
  安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/
  把这个记住,然后修改php.ini,把
  extension_dir = "./"
修改为
extension_dir = "/usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/"
  并添加一行
extension="memcache.so"
  /usr/local/webserver/php/sbin/php-fpm   reload 重新加载php
  5. 用phpinfo查看
  测试模块
  <?php
  $memcache = new Memcache;
$memcache->connect('localhost', 12000) or die ("Could not connect");
  $version = $memcache->getVersion();
echo "Server's version: ".$version."<br/> ";
  $tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
  $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/> ";
  $get_result = $memcache->get('key');
echo "Data from the cache:<br/> ";
  var_dump($get_result);
  ?>
  显示结果:
  Server's version: 1.2.6
Store data in the cache (data will expire in 10 seconds)
Data from the cache:
  object(stdClass)public 'str_attr' => string 'test' (length=4)public 'int_attr' => int 123

             版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: PHP扩展安装memcache模块