Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10170834
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: LINUX

2011-12-27 10:03:43

发布时间:December 6, 2007 分类:,

《》

《》

最近在研究怎么让Discuz!去应用Memcache去做一些事情,记录下Memcache安装的过程。

Linux下Memcache服务器端的安装
服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。
下载:
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)
官网:~provos/libevent/
下载:~provos/libevent-1.3.tar.gz

用wget指令直接下载这两个东西.下载回源文件后。
1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure --prefix=/usr;然后make;然后make install;
2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure --with-libevent=/usr;然后make;然后make install;
这样就完成了Linux下Memcache服务器端的安装。详细的方法如下:

1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
# cd /tmp
# wget
# wget ~provos/libevent-1.2.tar.gz

2.先安装libevent:
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure --prefix=/usr
# make
# make install

3.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
还不错,都安装上了。

4.安装memcached,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure --with-libevent=/usr
# make
# make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached ,

5.测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug

安装Memcache的PHP扩展
1.在 选择相应想要下载的memcache版本。
2.安装PHP的memcache扩展

tar vxzf memcache-2.2.1.tgz
cd memcache-2.2.1
/usr/local/php/bin/phpize
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
make
make install

3.上述安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/

4.把php.ini中的extension_dir = "./"修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"

5.添加一行来载入memcache扩展:extension=memcache.so

memcached的基本设置
1.启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

2.如果要结束Memcache进程,执行:

# kill `cat /tmp/memcached.pid`

也可以启动多个守护进程,不过端口不能重复。

3.重启apache,service httpd restart

Memcache环境测试
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
< ?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>

参考资料
对Memcached有疑问的朋友可以参考下列文章:



Discuz!的Memcache缓存实现

Tags: ,

已有 26 条评论 »
  1. jsam jsam

    我按你给的方法安装,不成功
    Configuring for:
    PHP Api Version: 20041225
    Zend Module Api No: 20060613
    Zend Extension Api No: 220060519
    安装PHP扩展时失败了,我的系统是redhat enterprise 5,能否指点一下呢?
    我的QQ:531049775

  2. jsam jsam

    it

  3. ballack ballack

    一个错误的帖子被抄来抄去,我的也是报错
    Configuring for:
    PHP Api Version: 20041225
    Zend Module Api No: 20060613
    Zend Extension Api No: 220060519
    Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
    environment variable is set correctly and then rerun this script.

    1. aaa aaa

      @ballack,
      你也不看看你的是什么报错信息就说文章写的有问题,什么人啊!

  4. freebird freebird

    可以运行
    我按你给的方法安装,不成功
    Configuring for:
    PHP Api Version: 20041225
    Zend Module Api No: 20060613
    Zend Extension Api No: 220060519

    然后是/usr/local/php/bin/phpize
    ./configure -enable-memcache -with-php-config=/usr/local/php/bin/php-config -with-zlib-dir

    会产生./configure的文件,然后重新执行./configure -enable-memcache -with-php-config=/usr/local/php/bin/php-config -with-zlib-dir

    后面的就按照顺序做就行了,不过因为博主写的时候字符是用汉字模式敲进去的,所以拷贝后需要把字符修改一下才可以

  5. kimi kimi

    @freebird 感谢你的回复,这是wordpress的对代码处理的问题,确实如你说的,文中的命令都是需要自己修改下!

    在这里也对前面几位朋友造成的不便表示歉意!

  6. ichixin ichixin

    如果是多ip的话-l参数如何使用呢?

  7. CK.PasSion CK.PasSion

    kimi你好:
    我也是没法按照你的方法安装,前面都顺利就是装到php扩展的时候/usr/local/php/bin/phpize报没有这个目录和文件,整个系统搜索也找不到这个文件,查了很久也没找到安装phpize的方面,apt-get install php-devel说是找不到包,我的系统是ubuntu,是不是安装扩展的方法不同?
    最后我是用apt-get install php-memcache这个命令安装好的。

  8. kuangjun kuangjun

    ./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir 有问题啊
    ./configure -–enable-memcache -–with-php-config=/usr/local/php/bin/php-config –-with-zlib-dir

    1. kimi kimi

      @kuangjun, tks~

  9. dimingchan dimingchan

    我memcached服务端和客户端都安装了,但无法创建memcache对象呀?什么原因?

    1. 黑暗的阳光 黑暗的阳光

      唉 我还是用的 apt-get install memcached实现的吧

  10. 冻鱼 冻鱼

    按照这个方法装上去了,可以nginx无法解析php了,报这个错了
    The page you are looking for is temporarily unavailable.
    Please try again later.

  11. 玉米串 玉米串

    谢谢你的分享,我安装运行成功了。

  12. 黑暗的阳光 黑暗的阳光

    我按照你的方法 安装成功了, 已经实现了, 但是我没次开机都要运行命令才能开启memcached, 怎么样才能像 service memcached start|stop这样开启呢?

    1. 小猫两三只 小猫两三只

      @黑暗的阳光, 写脚本放到init.d里面 做成服务
      5.2 编写memcache启动脚本脚本vi memcache内容如下
      #!/bin/sh
      #
      # memcached: MemCached Daemon
      #
      # chkconfig: - 90 25
      # description: MemCached Daemon
      #
      # Source function library.
      . /etc/rc.d/init.d/functions
      . /etc/sysconfig/network

      start()
      {
      echo -n $"Starting memcached: "
      daemon /usr/local/bin/memcached -u mc -d -m 256 -p 11200
      echo
      }

      stop()
      {
      echo -n $"Shutting down memcache1.4d: "
      killproc memcached
      echo
      }

      [ -f /usr/local/bin/memcached ] || exit 0

      # See how we were called.
      case "$1" in
      start)
      start
      ;;
      stop)
      stop
      ;;
      restart|reload)
      stop
      start
      ;;
      condrestart)
      stop
      start
      ;;
      *)
      echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
      exit 1
      esac
      exit 0
      5.3 为脚本增加执行权限chmod 755 memcached
      5.4 添加执行该脚本的用户 useradd mc
      5.5 chkconfig --add memcached
      5.6 chkconfig --level 345 memcached on
      这样你就可以/etc/init.d/memcahed start/stop了

  13. 清风设计 清风设计

    博主你好,请问你安装成功过吗? 可以请你帮我安装一个吗? 可以付费的

  14. 清风设计 清风设计

    QQ:9516097

  15. xjj xjj

    安装成功,谢谢

  16. huarong huarong

    还有付费安装的好事啊?
    找我吧,我可以收费帮你们安装,哈哈。

  17. tewtw tewtw

    memcached 安装不成功。

    你那里就简单写了句检查代码。
    这么多错误。

  18. joy joy

    请教 KVM 下怎么安装

  19. rendermay rendermay

    成功了,感谢啊

  20. 逸远 逸远

    博主 搭建成功以后,怎样能看见有memcache和没有memcache的效果呢。 QQ:875626903 这让我很纠结

  21. xiao xiao

    安装成功!
    多谢!

  22. 紫枫闲人 紫枫闲人

    安装成功,多谢~!

阅读(885) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~