Linux下安装Memcache以及安装过程中一些问题的解决方法

来源:互联网 发布:社区网络延迟怎么解决 编辑:程序博客网 时间:2024/04/30 09:04

一、下载安装libevent

cd /tmp                                                     #切换到tmp目录wget http://www.monkey.org/~provos/libevent-1.2.tar.gz      #下载tar zxvf libevent-1.2.tar.gz                                #解压cd libevent-1.2                                             #切换到libevent目录./configure --prefix=/usr                                   #配置安装路径#如果此步骤报错,检查一下有没有安装编译器,没有的话运行以下命令进行安装yum install gccmake                                                        #编译#如果提示:make: *** 没有指明目标并且找不到 makefile。 停止。   即为没有安装编译器make install                                                #安装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.lalrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3显示以上信息,即已安装成功

二、下载安装memcache

cd /tmp                                                             #切换到tmp目录wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz     #下载tar zxvf memcached-1.2.0.tar.gz                                     #解压cd memcached-1.2.0                                                  #切换到解压目录./configure --with-libevent=/usr                                    #配置make                                                                #编译make install                                                        #安装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显示以上信息,即已安装成功

三、安装php的memcache扩展
http://pecl.php.net/package/memcache 去这个网站下载memcache安装包,我下载的是3.0.8
下载完之后拷贝到linux上

#切换到所在目录tar vxzf memcache-3.0.8.tgz     #解压cd memcache-3.0.8               #切换到目录find / -name 'phpize'               #先找出phpize的位置./usr/bin/phpize                #我的查找结果是这个/usr/bin/phpize                 #执行此文件Can't find PHP headers in /usr/include/phpThe php-devel package is required for use of this command.#如果出现以上提示,即需要安装php-develyum install php-devel           #安装php-devel/usr/bin/phpize                 #安装完后再执行此文件find / -name 'php-config'           #查找这个文件./usr/bin/php-config            #我的查找结果是这个./configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir#把/usr/bin/php-config改成查找出来的路径,然后执行make                            #编译#如果出现一大堆报错,而且其中有一句是:错误:zlib.h:没有那个文件或目录。    即需要安装zlib-develyum install zlib-devel          #安装zlib-devel#然后再编译安装就ok了makemake install安装完之后会有,类似这样的提示Installing shared extensions:     /usr/lib64/php/modules/把php.ini中的extension_dir修改为这个路径就可以了extension_dir = "/usr/lib64/php/modules/"再在php.ini中添加一行extension=memcache.so

三、启动memcache

/usr/local/bin/memcached -P /tmp/memcached.pid -d -m 20 -p 11211 -u root各参数说明:-d:启动一个守护进程-m:分配给Memcache的内存大小,单位是M-u:运行Memcache的用户-l:监听的服务器IP地址-p:Memcache的监听端口,最好是1024以上的端口-c:最大并发数,默认是1024-P:设置保存Memcache的pid文件,我设置的是保存在/tmp/memcached.pid如果出现如下错误:/usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory即原因可能是memcached找不到libevent的位置查看libevent的位置在哪find / -name libevent-1.2.so.1/usr/lib/libevent-1.2.so.1      查出来是在这里然后查看memcache是在哪查找libevent的LD_DEBUG=libs memcached -v然后输出了一大堆信息15008:  find library=libevent-1.2.so.1 [0]; searching     15008:  search cache=/etc/ld.so.cache     15008:  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)     15008:   trying file=/lib64/tls/x86_64/libevent-1.2.so.1     15008:   trying file=/lib64/tls/libevent-1.2.so.1     15008:   trying file=/lib64/x86_64/libevent-1.2.so.1     15008:   trying file=/lib64/libevent-1.2.so.1     15008:   trying file=/usr/lib64/tls/x86_64/libevent-1.2.so.1     15008:   trying file=/usr/lib64/tls/libevent-1.2.so.1     15008:   trying file=/usr/lib64/x86_64/libevent-1.2.so.1     15008:   trying file=/usr/lib64/libevent-1.2.so.1看到memcache是在/usr/lib64/查找libevent的所以创建链接ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/libevent-1.2.so.1再启动memcache/usr/local/bin/memcached -P /tmp/memcached.pid -d -m 20 -p 11211 -u root启动成功

四、测试

重启apacheservice httpd restart创建php文件<?php$m = new Memcache;if(!$m->connect('127.0.0.1', 11211)){    die('连接失败');}$m->set('key', 'memcache安装成功', 0, 60);echo $m->get('key');

至此,memcache已安装完成


设置开机自启动:
在/etc/rc.d/rc.local中加入启动命令即可

关闭memcache:

kill `cat /tmp/memcached.pid`
0 0