SA Blog --系统管理员的博客生涯

书写自己的系统管理博客生涯
posts(330) comments(254) trackbacks(0)
  • IT博客
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(395)

  • *UNIX系统(148)
  • Cloud(3)
  • Moive
  • Music(1)
  • OpenStack(7)
  • openstack
  • Wiki(1)
  • Windows系统(32)
  • 其他(33)
  • 娱乐
  • 存储相关(22)
  • 存储网络(10)
  • 常用工具下载(25)
  • 数据库应用技术(53)
  • 网络技术(41)
  • 英语
  • 虚拟化(19)

随笔档案(330)

  • 2020年9月 (1)
  • 2020年8月 (1)
  • 2020年7月 (8)
  • 2020年4月 (1)
  • 2020年2月 (1)
  • 2020年1月 (1)
  • 2019年9月 (2)
  • 2019年4月 (1)
  • 2016年1月 (1)
  • 2015年12月 (1)
  • 2015年7月 (4)
  • 2015年5月 (2)
  • 2014年3月 (2)
  • 2014年1月 (1)
  • 2013年12月 (1)
  • 2013年3月 (5)
  • 2013年2月 (4)
  • 2012年12月 (1)
  • 2012年11月 (2)
  • 2012年9月 (2)
  • 2012年8月 (1)
  • 2012年6月 (1)
  • 2012年5月 (1)
  • 2012年1月 (1)
  • 2011年12月 (2)
  • 2011年10月 (1)
  • 2011年9月 (3)
  • 2011年8月 (1)
  • 2011年7月 (5)
  • 2011年6月 (3)
  • 2011年5月 (5)
  • 2011年4月 (2)
  • 2011年3月 (2)
  • 2011年2月 (1)
  • 2011年1月 (5)
  • 2010年12月 (1)
  • 2010年11月 (4)
  • 2010年9月 (13)
  • 2010年8月 (4)
  • 2010年7月 (5)
  • 2010年6月 (5)
  • 2010年5月 (13)
  • 2010年4月 (10)
  • 2010年3月 (5)
  • 2010年2月 (1)
  • 2010年1月 (9)
  • 2009年12月 (5)
  • 2009年11月 (5)
  • 2009年10月 (1)
  • 2009年9月 (3)
  • 2009年8月 (2)
  • 2009年7月 (6)
  • 2009年6月 (3)
  • 2009年5月 (2)
  • 2009年4月 (1)
  • 2009年3月 (2)
  • 2009年2月 (3)
  • 2008年12月 (3)
  • 2008年11月 (1)
  • 2008年10月 (9)
  • 2008年9月 (5)
  • 2008年8月 (3)
  • 2008年7月 (1)
  • 2008年6月 (1)
  • 2008年5月 (2)
  • 2008年4月 (1)
  • 2008年3月 (1)
  • 2008年2月 (3)
  • 2008年1月 (1)
  • 2007年12月 (5)
  • 2007年11月 (1)
  • 2007年10月 (6)
  • 2007年9月 (4)
  • 2007年8月 (4)
  • 2007年7月 (34)
  • 2007年6月 (1)
  • 2007年4月 (2)
  • 2007年3月 (1)
  • 2007年2月 (1)
  • 2006年11月 (1)
  • 2006年9月 (4)
  • 2006年8月 (4)
  • 2006年7月 (1)
  • 2006年6月 (10)
  • 2006年5月 (3)
  • 2006年4月 (14)
  • 2006年2月 (6)
  • 2006年1月 (6)
  • 2005年12月 (12)

收藏夹(5)

  • Other(5)

IT技术

  • MSDN 库(中文)
  • 欢迎使用 MSDN 库(中文),MSDN 库为使用 Microsoft® 工具、产品、技术和服务的开发人员提供必不可少的信息资源。MSDN 库包含操作方法和参考文档、示例代码、技术文章和其他内容。请浏览目录或使用搜索功能来查找所需内容。

健康

  • 体检咨询
  • 北京体检 体检咨询
  • 足医生
  • 足医生

友情链接

  • TestLink中文论坛
  • Testlink 中文论坛
  • 备案专题
  • 备案专题
  • 微软大中华区安全博客
  • 微软大中华区安全博客

存储技术

  • doit存储
  • doit 存储,存储热门论坛
  • ITPUB
  • Oracle DBA 热门中文社区
  • TechTarget IT专家网
  • 蓝德科技

网络技术

  • ChinaUnix 中文社区
  • ChinaUnix 热门中文社区

搜索

  •  

最新评论

  • 1. re: 吐槽一下阿里系软件,就是天天的升级???
  • 评论内容较长,点击标题查看
  • --David
  • 2. re: Symantec Backup exec system recovery 2010(BESR 2010)故障汇总
  • 评论内容较长,点击标题查看
  • --112
  • 3. re: OpenStack安装部署管理中常见问题解决方法(OpenStack-Lite-FAQ)
  • /home/stack/devstack/tools/worlddump.py -d /home/stack/logs
    求救这是什么问题啊。
  • --陈晓龙
  • 4. re: nokia 手机密码忘记后破解
  • nokia 2630,密码不见,恳请帮忙,谢谢
    串号:355219037959407
    lipolipo@gmail.com
  • --沈同学
  • 5. re: chroot 工具 jailkit 限制用户 活动范围 和 权限 _ 笔记
  • 是一个很好的工具嘛。感谢分享。
  • --少林功夫好

阅读排行榜

评论排行榜

View Post

memcache安装环境

memcache安装环境
CentOS 5.4 + Apache 2.2.3( Yum安装 ) + PHP 5.2.10( Yum 安装 ) + GCC 4.1.2 ( Yum 安装 )
注:这里要说明安装方式的原因是,很多朋友都采用的是源代码编译的方式安装的软件。因此,在程序路径和配置上可能会与Yum下载下来的rpm包安装的路径会有些出入。具体配置过程中一些路径问题,参考本文的朋友,请根据自己具体的情况进行设置修改。
1. 安装libevent和开发包
由于Memcached是基于libevent库实现的网络通讯部分的功能,因此,首先就要安装libevent库的相关包。
官网:http://www.monkey.org/~provos/libevent/
当前版本:1.4.10-stable 2.0.1-alpha
安装方法:
方法一: YUM安装( 个人推荐 )
CentOS 5.* 以后的操作系统最用户使用舒服的,莫过于YUM了。回想以前在RedHat9和后来的AS3,AS4做系统维护的时候,升级一下软件包,或在生产环境中编译程序缺少GCC,在源码光盘中,痛苦找包的经历。现在的YUM真是让人很幸福啊。
#yum install libevent libevent-devel
说明:安装devel包的原因是,考虑到后期可能的一些应用会使用到libevent相关库进行编译活动,因此,顺带就将该软件包安装上。( 事实上,下一步Memcached的安装就将采用源代码编译,需要libevent-devel包的支持 )
方法二:源代码编译安装 #wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz & #tar xzf libevent-1.4.14b-stable.tar.gz #cd libevent-1.4.14b-stable
对比rpm包安装方式的安装路径 #rpm -ql libevent #/usr/lib/libevent-1.4.so.2 #/usr/lib/libevent-1.4.so.2.1.3 #/usr/lib/libevent_core-1.4.so.2 #/usr/lib/libevent_core-1.4.so.2.1.3 #/usr/lib/libevent_extra-1.4.so.2 #/usr/lib/libevent_extra-1.4.so.2.1.3 #/usr/share/doc/libevent-1.4.13 #/usr/share/doc/libevent-1.4.13/README
便于维护,我建议采用源代码编译的程序同样使用相同的路径进行安装配置。 # ./configure - -prefix=/usr/lib #make #make install
检测libevent安装情况: [root@localhost ~/libevent]# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 05-23 21:38 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3 -rwxr-xr-x 1 root root 104804 03-31 21:19 libevent-1.4.so.2.1.3 -rw-r--r-- 1 root root 130350 03-31 21:18 libevent.a lrwxrwxrwx 1 root root 26 05-23 21:38 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3 -rwxr-xr-x 1 root root 34820 03-31 21:19 libevent_core-1.4.so.2.1.3 -rw-r--r-- 1 root root 44868 03-31 21:18 libevent_core.a lrwxrwxrwx 1 root root 26 08-05 11:51 libevent_core.so -> libevent_core-1.4.so.2.1.3 lrwxrwxrwx 1 root root 27 05-23 21:38 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3 -rwxr-xr-x 1 root root 84180 03-31 21:19 libevent_extra-1.4.so.2.1.3 -rw-r--r-- 1 root root 102266 03-31 21:18 libevent_extra.a lrwxrwxrwx 1 root root 27 08-05 11:51 libevent_extra.so -> libevent_extra-1.4.so.2.1.3 lrwxrwxrwx 1 root root 21 08-05 11:51 libevent.so -> libevent-1.4.so.2.1.3
2. 安装memcached
由于搜索了YUM软件库中,没有memcached包存在。 [root@localhost ~/libevent]# yum search memcache Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: centos.candishosting.com.cn * base: centos.mirror.cdnetworks.com * extras: centos.candishosting.com.cn * updates: centos.tt.co.kr Reducing CentOS-5 Testing to included packages only Finished ======================= Matched: memcache ================================ php-pecl-memcache.i386 : Extension to work with the Memcached caching daemon [root@localhost ~/libevent]#
因此,memcached我们采用源代码编译安装的方式进行。
官方网站:http://memcached.org/
当前版本:v1.4.5
#wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz & #tar xzf memcached-1.4.5.tar.gz #cd memcached-1.4.5 #./configure #make #make install
检测memcached安装情况: #cd /usr/local/bin/ # ll -al mem* -rwxr-xr-x 1 root root 202065 08-05 15:32 memcached
启动memcached服务 #/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
说明:
-d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,由于是本地开发( 非实际运行环境 )这里指定了服务器的IP地址127.0.0.1, -p是设置Memcache监听的端口,这里设置了11211,最好是1024以上的端口, -c选项是最大运行的并发连接数,默认是1024,这里设置了256,按照服务器的负载量来设定, -P是设置保存Memcache的pid文件,这里是保存在 /tmp/memcached.pid,
结束memcached进程 #kill `cat /tmp/memcached.pid`
3. 安装memcached的PHP扩展( 提示,请看完本小节后再进行安装配置 )
虽然安装好了memcached,但是,php还没有办法直接使用memcached。当然,如果你想重复造轮子的话,可以自己写个类,完全实现memcached的通讯协议。
目前,PHP中使用最多的是PHP的PECL的Memcached的扩展。php-pecl-memcache
上面使用Yum搜索memcached的时候,我们已经看到Yum源中提供了软件包的下载,因此,很自然的我们就使用YUM安装memcached的PHP扩展。 #yum install php-pecl-memcache
安装完成后查看PHP加载情况: #php –m bz2 calendar ctype curl date dbase dom exif … PHP Warning: PHP Startup: memcache: Unable to initialize module Module compiled with module API=20050922, debug=0, thread-safety=0 PHP compiled with module API=20060613, debug=0, thread-safety=0 These options need to match in Unknown on line 0
发现出现了Module版本不匹配的情况。由于我们之前使用的最新的源代码包编译的memcached,因此,怀疑是Yum源中提供的php-pecl-memcache扩展版本较旧导致的。
因此,必须采用编译php动态扩展的方式来进行安装。
官方网址:http://pecl.php.net/package/memcache
当前版本:2.2.5-stable 3.0.4-bata
首先,先卸载YUM安装的软件包 #yum erase php-pecl-memcache
下载源码并使用phpize进行安装 #wget http://pecl.php.net/get/memcache-2.2.5.tgz &
#tar xzf memcache-2.2.5.tgz #cd memcache-2.2.5
发现没有安装phpize #yum install php-devel # rpm -ql php-devel | grep phpize /usr/bin/phpize /usr/lib/php/build/phpize.m4 /usr/share/man/man1/phpize.1.gz
使用phpize编译( rpm包安装,phpize默认配置到了系统环境变量中,因此后续操作没有加phpize的路径 )
当前目录是memcache-2.2.5的解压后的源代码目录 #phpize #./configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir #make #make install
由于之前已经安装了其他的PHP模块。例如:php-mbstring php-mcrypt。所以,在/etc/php.ini中已经设置了PHP动态模块扩展的路径。
; Directory in which the loadable extensions (modules) reside. extension_dir = "/usr/lib/php/modules"
并且,默认安装好的memcache.so在make install的时候默认拷贝到了该目录下,那么,现在只需要在php.ini中增加module的扩展配置即可。
这里,参考了其他的rpm包安装的module的配置方式,在/etc/php.d/下增加自己的单独的module配置文件。PHP会自动加载该文件夹 下的每个配置文件。 [root@localhost /etc/php.d]# ll 总计 64 -rw-r--r-- 1 root root 51 2009-11-14 dbase.ini -rw-r--r-- 1 root root 47 2009-11-14 dom.ini -rw-r--r-- 1 root root 49 2009-11-14 json.ini -rw-r--r-- 1 root root 49 2009-11-14 ldap.ini -rw-r--r-- 1 root root 57 2009-11-14 mbstring.ini -rw-r--r-- 1 root root 53 2009-09-10 mcrypt.ini -rw-r--r-- 1 root root 53 2009-11-14 mysqli.ini -rw-r--r-- 1 root root 51 2009-11-14 mysql.ini -rw-r--r-- 1 root root 47 2009-11-14 pdo.ini -rw-r--r-- 1 root root 59 2009-11-14 pdo_mysql.ini -rw-r--r-- 1 root root 61 2009-11-14 pdo_sqlite.ini -rw-r--r-- 1 root root 59 2009-11-14 xmlreader.ini -rw-r--r-- 1 root root 59 2009-11-14 xmlwriter.ini -rw-r--r-- 1 root root 47 2009-11-14 xsl.ini -rw-r--r-- 1 root root 47 2009-11-14 zip.ini
这里我们增加自己的一个memcache.ini [root@localhost /etc/php.d]# cat memcache.ini ; Enable memcache extension module extension=memcache.so
[root@localhost /etc/php.d]#
检测php-pecl-memcache的安装情况 #php -m …… mcrypt memcache mysql mysqli ……
这样就表示PHP正确识别了该对应版本的PECL的memcache的扩展模块。下面只要重启Apache服务,使得所有配置生效。我们可以建立一个测试文件在命令行或者一个测试站点上进行Memcache的调用测试了。
测试前提:
1. Memcached服务已经启动,监听的IP和端口是 127.0.0.1:11211
2. PHP加载php-pecl-memcache模块正常。
测试代码:
memcache_test.php <?php $mem = new Memcache; $mem->connect("127.0.0.1", 11211); $mem->set('key', “This is a test!\n”, 0, 60); $val = $mem->get('key'); echo $val; ?>
如果有虚拟主机环境,那么,可以在虚拟主机环境中的对应路径访问该php页面。
这里我们使用命令行测试。
[root@localhost ~/lab/php]# php -e memcache_test.php PHP Notice: Memcache::connect(): Server 127.0.0.1 (tcp 11211) failed with: Connection refused (111) in /root/lab/php/mem_cache_test.php on line 3 PHP Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection refused (111) in /root/lab/php/mem_cache_test.php on line 3 PHP Warning: Memcache::set(): No servers added to memcache connection in /root/lab/php/mem_cache_test.php on line 4 PHP Warning: Memcache::get(): No servers added to memcache connection in /root/lab/php/mem_cache_test.php on line 5 [root@localhost ~/lab/php]#


在apache的网站根目录建立 memcache.php 文件

vi memcache.php

内容如下:

<?php $memcache = new Memcache(); $memcache->connect('127.0.0.1', 11211); $memcache->set('key', 'Memcache test successful!', 0, 60); $result = $memcache->get('key'); unset($memcache); echo $result; ?>

如果一切正常,访问此页面,应该正常返回“Memcache test successful”,至此,Memcached与php扩展memcache安装成功。

Memcached的默认端口为11211,因此在php中使用此端口即可。下面顺便给出个清除memcache所有缓存内容的方法:

执行:

[root@www ~]# nc localhost 11211

然后输入:

flush_all quit

即可。

posted on 2012-09-07 15:14 David 阅读(528) 评论(0)  编辑 收藏 引用 所属分类: *UNIX系统 、其他

 
Powered by:
IT博客
Copyright © David