[转]编译安装libevent,memcache,以及php的memcached扩展

一 安装libevent

1.去官网http://libevent.org/ 下载最新源码,我用的是libevent-2.0.20-stable.tar.gz

2.解压到/usr/src目录 ,执行命令:sudo tar -zxvf libevent-2.0.20-stable.tar.gz -C /usr/src

3.进入解压以后的目录,用sudo方式执行命令:sudo ./configure --prefix=/usr/local/libevent ; make ; make install

二 安装memcache

1.去官网 http://memcached.org/ 下最新源码,我用的是memcached-1.4.15.tar.gz

2.解压到/usr/src目录 ,执行命令:sudo tar -zxvf memcached-1.4.15.tar.gz -C /usr/src

3.进入解压以后的目录,用sudo方式执行命令:sudo ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent; make ; make install

三 安装php的memcache扩展

有两个版本一个是memcache(http://pecl.php.net/package/memcache ),另一个是基于libmemcached的memcached版本(http://pecl.php.net/package/memcached );

网上查的资料是说前一个是原生的,后一个比前一个功能更强大。比较推荐使用基于libmemcahced 库的memcached扩展。支持memcache提供的CAS操作,稳定性和效率也更好。

这里我使用基于libmemcached 库的memcached扩展,安装步骤如下:

首先,安装libmemcached库

1.去网址 https://launchpad.net/libmemcached (或者http://libmemcached.org/libMemcached.html )下载源码,

我用的是libmemcached-1.0.14.tar.gz

2.解压缩到/usr/src目录,用sudo方式执行命令:sudo tar -zxvf libmemcached-1.0.14.tar.gz -C /usr/src

3.进入目录/usr/src/libmemcached-1.0.14/,sudo方式执行命令:./configure ;make;make install (不加--prefix=/usr/local/libmemcached 指定安装目录时,libmemcached 默认安装在/usr/local/,头文件安装在/usr/local/include/libmemcachde/,动态库默认安装在/usr/local/lib/下。)

4.make时遇到问题:sorry, unimplemented: Graphite loop optimizations can only be used if the libcloog-ppl0 package is installed。解决办法是修改Makefile,查找并去掉 floop-parallelize-all(应该有两处需要去掉),看了网上资料说是去掉后表示不使用Graphite loop 优化。

5.再次make,遇到问题:fatal error: sasl/sasl.h: No such file or directory. 在网上搜到的解决办法是:

Depending on your operating system, you‘ll need to install the cyrus-sasl development package.

That would be cyrus-sasl-devel on RedHat based distros and libsasl2-dev on Debian based distros IIRC.

我在ubuntu下直接用sudo apt-get install libsasl2-dev 安装了。

6.编译还是遇到问题,显示无法链接到sasl的一些文件。问题显示如下:

undefined reference to `sasl_client_step‘
   undefined reference to `sasl_dispose‘
   undefined reference to `sasl_client_start‘
   undefined reference to `sasl_client_new‘

解决办法是重新执行configure命令,增加相应的参数。sudo执行命令:sudo ./configure
--enable-sasl --without-memcached LDFLAGS=-Wl,--as-neede ;make; make
install

7.终于安装libmemcached库成功了。。。

其次,安装memcached版本的php扩展

1. 去网址http://pecl.php.net/package/memcached 下载memcached版本,我用的是memcached-2.1.0.tgz

2. 解压到/usr/src目录 ,执行命令:sudo tar -zxvf memcached-2.1.0.tgz -C /usr/src

3. 进入解压以后的目录,是没有configure文件的,用sudo方式执行命令来生成:sudo /usr/local/php/bin/phpize

4.遇到问题:Cannot find autoconf. Please check your autoconf installation
and the $PHP_AUTOCONF environment variable. Then, rerun this script.
网上搜到的解决办法为:

cd /usr/src
wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9/
./configure && make && make install
cd ../
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar -zvxf autoconf-2.62.tar.gzcd autoconf-2.62/
./configure && make && make install

5.这是再次执行sudo /usr/local/php/bin/phpize,就可以成功生成configure文件了。(phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,官方说明网址为:http://php.net/manual/en/install.pecl.phpize.php)

6.用sudo方式执行命令./configure --with-php-config=/usr/local/php/bin/php-config; make ; make install

7.编译完成了,还需要做的是在/usr/local/lib/php.ini文件中加入extension值:extension=memcache.so

8.重启/usr/local/php/sbin/php-fpm程序使配置生效,但是报错:

ERROR: failed to open configuration file ‘/usr/local/php/etc/php-fpm.conf‘: No such file or directory (2)

ERROR: failed to load configuration file ‘/usr/local/php/etc/php-fpm.conf‘

ERROR: FPM initialization failed

解决办法为: (1)cd /usr/local/php/etc/; (2)mv php-fpm.conf.default php-fpm.conf

9.重启仍然出现问题:ERROR: [pool www] cannot get uid for user ‘www‘。解决办法为:编辑文件vim /usr/local/php/etc/php-fpm.conf,

把user = nobody group = nobody  中的nobody修改成有效的用户和用户组名称。

10.php扩展可使用的一些方法可参考网址:http://blog.csdn.net/fwkjdaghappy1/article/details/7592337

参考网址:

http://www.dewen.org/q/844

http://hi.baidu.com/thinkinginlamp/item/5a3b2531e25dc6f62784f4fb

http://code.google.com/p/memcached/wiki/PHPClientComparison

https://bugs.launchpad.net/keystone/+bug/843080

http://www.cppblog.com/kefeng/archive/2010/10/11/129422.html

https://bugs.launchpad.net/libmemcached/+bug/656010

http://blog.csdn.net/vaal_water/article/details/6439483

http://www.spiration.co.uk/post/1385/Cannot-find-autoconf.-Please-check-your-autoconf-installation

https://gist.github.com/3359828

http://www.2cto.com/kf/201111/110140.html

http://blog.johntechinfo.com/technology/264

http://www.oschina.net/question/231397_36921

http://www.cnblogs.com/huangjingzhou/articles/2093706.html

http://blog.csdn.net/fwkjdaghappy1/article/details/7592337

时间: 2024-10-05 15:59:36

[转]编译安装libevent,memcache,以及php的memcached扩展的相关文章

centos 6.5下编译安装php-7.1.6和 php memcached扩展

0,安装 php-7.1.6 依赖包 # yum groupinstall "Development tools" "Desktop Platform Development" # yum -y install openssl-devel libcurl-devel libmcrypt libmcrypt-devel bzip2-devel 1,编译安装php 7.1.6 ## 如果需要加入 pgsql扩展 ,则必须先安装好 postgresql # wget ht

关于php编译安装扩展模块memcache的问题

memcached,通过缓存数据库查询结果,减少数据库访问次数,从而提高动态web站点性能.Memcached作 为一个独立的分布式的缓存服务器,为多个web服务器提供了一个共享的高性能缓存服务,在Memcached 服务器上,又发展了根据hash算法来进行多台Memcached缓存服务的扩展,然后又出现了一致性hash来解 决增加或减少缓存服务器导致重新hash带来的大量缓存失效的弊端. 官方站点 http://memcached.org/ 而我们在使用memcached的时候需要使用php来

yum 安装apache php 使php支持memcached扩展

在公司上新项目的时候,无论生产环境还是测试环境,都会让运维安装php 环境(lamp/lnmp),并让php支持memcached 的扩展.这里搭建php环境其实主要就是搭建apache 和php.mysql一般都是用单独的数据库,不会再同一台服务器上的.看似简单的东西,在搭建的时候,还真是遇到了不少问题,以此记录,方便各位运维同学. 一.163和默认的镜像源有些包不能下载,使用阿里的镜像源 见本博客地址:http://www.cnblogs.com/lzcys8868/p/7532569.ht

在Linux下编译安装memcached

一.在编译安装之前,先安装系统所需要的相关库文件 #yum -y install gcc gcc-c++ make cmake libtool autoconf libaio 二.下载相应的依赖库和memcached源码包 1.从http://libevent.org/下载libevent的stable版本 #wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.

windows下的php的memcache扩展的安装及memcache最新下载地址

windows下的php的memcache扩展的安装及memcache最新下载地址 memcached for Windows下载地址.(memcached本身并没有windows版本)如果上面下载不了,可以去:http://splinedancer.com/memcached-win32/  下载最新的windows版memcache的文件: Windows下的Memcache安装:1. 下载好memcached后,解压放某个盘下面,比如在c:\memcached2. 在终端(也即cmd命令界

Linux下memcache编译安装与基本使用

memcache是一套分布式的高速缓存系统,特点为key-value 存储 一.在 linux 编译安装memcache.redis等,需要 gcc,make,cmake,autoconf,libtool 等工具, 直接使用yum安装即可: yum install gcc make cmake autoconf libtool 二.下载官方源码: memcached依赖于libevent库,因此需要先安装 libevent,下载地址:http://libevent.org/ memcache官网

linux 基础学习编译安装php+mysql+python3+memcached+radis+rabbitmq+libevent+tcl+gcc+erlang

CentOS 6.9 编译安装 Nginx+PHP+MYSQL 0x01 环境约束 源码位置 /home/[用户文件夹] 源码编译安装位置  /usr/local/[软件名] CentOS6.9 x86 - 64 最小化安装 配置好网络 用户 使用Xshell登录 0x02 软件下载 内网地址: http://192.168.20.252/src/php.tar.gz http://192.168.20.252/src/cmake.tar.gz http://192.168.20.252/src

php编译安装,cgi启动,以及memcache扩展编译安装.

先安装必须的依赖库(参数-y:apt-get命令参数详解 http://hi.baidu.com/usen68/item/942891e5de324f0f8d3ea885): 1 sudo apt-get -y install autoconf && 2 sudo apt-get -y install libxml2-dev && 3 sudo apt-get -y install bzip2 && 4 sudo apt-get -y install lib

编译安装Nginx+Mariadb+Memcache+php实现Nginx与Memcache结合

前端Nginx配置: 1.安装nginx 创建Nginx用户.创建/var/tmp/nginx目录并编译安装 useradd -r nginx mkdir /var/tmp/nginx tar xf nginx-1.4.7.tar.gz ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log -