Linux下安装Memcache以及安装过程中一些问题的解决方法
一、下载安装libevent
1 cd /tmp #切换到tmp目录 2 3 wget http://www.monkey.org/~provos/libevent-1.2.tar.gz #下载 4 5 tar zxvf libevent-1.2.tar.gz #解压 6 7 cd libevent-1.2 #切换到libevent目录 8 9 ./configure --prefix=/usr #配置安装路径 10 #如果此步骤报错,检查一下有没有安装编译器,没有的话运行以下命令进行安装 11 yum install gcc 12 13 make #编译 14 #如果提示:make: *** 没有指明目标并且找不到 makefile。 停止。 即为没有安装编译器 15 16 make install #安装 17 18 ls -al /usr/lib | grep libevent #测试是否安装成功 19 20 lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3 21 -rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3 22 -rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a 23 -rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la 24 lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3 25 26 显示以上信息,即已安装成功
二、下载安装memcache
1 cd /tmp #切换到tmp目录 2 wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz #下载 3 tar zxvf memcached-1.2.0.tar.gz #解压 4 cd memcached-1.2.0 #切换到解压目录 5 ./configure --with-libevent=/usr #配置 6 make #编译 7 make install #安装 8 9 ls -al /usr/local/bin/mem* #测试是否安装成功 10 11 -rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached 12 -rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug 13 14 显示以上信息,即已安装成功
三、安装php的memcache扩展
http://pecl.php.net/package/memcache 去这个网站下载memcache安装包,我下载的是3.0.8
下载完之后拷贝到linux上
1 #切换到所在目录 2 tar vxzf memcache-3.0.8.tgz #解压 3 4 cd memcache-3.0.8 #切换到目录 5 6 find / -name 'phpize' #先找出phpize的位置 7 ./usr/bin/phpize #我的查找结果是这个 8 9 /usr/bin/phpize #执行此文件 10 11 Can't find PHP headers in /usr/include/php 12 The php-devel package is required for use of this command. 13 #如果出现以上提示,即需要安装php-devel 14 15 yum install php-devel #安装php-devel 16 /usr/bin/phpize #安装完后再执行此文件 17 18 find / -name 'php-config' #查找这个文件 19 ./usr/bin/php-config #我的查找结果是这个 20 21 ./configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir 22 #把/usr/bin/php-config改成查找出来的路径,然后执行 23 24 make #编译 25 #如果出现一大堆报错,而且其中有一句是:错误:zlib.h:没有那个文件或目录。 即需要安装zlib-devel 26 27 yum install zlib-devel #安装zlib-devel 28 #然后再编译安装就ok了 29 make 30 make install 31 32 安装完之后会有,类似这样的提示 33 Installing shared extensions: /usr/lib64/php/modules/ 34 35 把php.ini中的extension_dir修改为这个路径就可以了 36 extension_dir = "/usr/lib64/php/modules/" 37 38 再在php.ini中添加一行 39 extension=memcache.so
三、启动memcache
1 /usr/local/bin/memcached -P /tmp/memcached.pid -d -m 20 -p 11211 -u root 2 3 各参数说明: 4 -d:启动一个守护进程 5 -m:分配给Memcache的内存大小,单位是M 6 -u:运行Memcache的用户 7 -l:监听的服务器IP地址 8 -p:Memcache的监听端口,最好是1024以上的端口 9 -c:最大并发数,默认是1024 10 -P:设置保存Memcache的pid文件,我设置的是保存在/tmp/memcached.pid 11 12 如果出现如下错误: 13 /usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory 14 即原因可能是memcached找不到libevent的位置 15 16 查看libevent的位置在哪 17 find / -name libevent-1.2.so.1 18 /usr/lib/libevent-1.2.so.1 查出来是在这里 19 20 然后查看memcache是在哪查找libevent的 21 LD_DEBUG=libs memcached -v 22 然后输出了一大堆信息 23 15008: find library=libevent-1.2.so.1 [0]; searching 24 15008: search cache=/etc/ld.so.cache 25 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) 26 15008: trying file=/lib64/tls/x86_64/libevent-1.2.so.1 27 15008: trying file=/lib64/tls/libevent-1.2.so.1 28 15008: trying file=/lib64/x86_64/libevent-1.2.so.1 29 15008: trying file=/lib64/libevent-1.2.so.1 30 15008: trying file=/usr/lib64/tls/x86_64/libevent-1.2.so.1 31 15008: trying file=/usr/lib64/tls/libevent-1.2.so.1 32 15008: trying file=/usr/lib64/x86_64/libevent-1.2.so.1 33 15008: trying file=/usr/lib64/libevent-1.2.so.1 34 35 看到memcache是在/usr/lib64/查找libevent的 36 37 所以创建链接 38 ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/libevent-1.2.so.1 39 40 再启动memcache 41 /usr/local/bin/memcached -P /tmp/memcached.pid -d -m 20 -p 11211 -u root 42 43 启动成功
四、测试
1 重启apache 2 service httpd restart 3 4 创建php文件 5 <?php 6 $m = new Memcache; 7 if(!$m->connect('127.0.0.1', 11211)){ 8 die('连接失败'); 9 } 10 $m->set('key', 'memcache安装成功', 0, 60); 11 echo $m->get('key');
至此,memcache已安装完成
设置开机自启动:
在/etc/rc.d/rc.local中加入启动命令即可
关闭memcache:
1 kill `cat /tmp/memcached.pid`
文章转自:http://blog.csdn.net/codercwm/article/details/52625669