如何在ubuntu 12.04上面为php5.6安装memcached及扩展

导语:叶子的一位客户使用的是ubuntu 12.04的操作系统,php的版本为5.6,叶子为了提供网页的响应速度为他安装了memcached,把数据和网页加载到内存。下面是安装过程。

安装memcached服务端

通过apt-get的方式来安装。这与centos的不同,centos的系统是yum。

apt-get install memcached

启动memcached服务端,使用了memcache用户来启动。

memcached -m 64 -p 11211 -u memcache -l 127.0.0.1

或者使用root用户来启动,都是可以的。

memcached -d -l 127.0.0.1 -p 11211 -m 64 -u root

将memcached服务端加入开机启动,ubuntu 12.04上需要打开/etc/init.d/rc.local来添加,这与centos的也不一样。

vi /etc/init.d/rc.local

/usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1

或者用root用户来启动。

/usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 64 -u root

安装memcached客户端

客户端的安装分为安装libmemcached和php的memcached扩展。

我们先安装libmemcached,切换目录。

cd /usr/local/src/

下载libmemcached包。考虑到是php5.6,它只能用php-memcached 2.2.0,为了兼容,所以只下载了libmemcached-1.0.18。其实,libmemcached已经有更新的版本了。

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

解压libmemcached-1.0.18。

tar -zxf libmemcached-1.0.18.tar.gz

切换目录到libmemcached-1.0.18。

cd libmemcached-1.0.18

开始编译安装。

./configure

make

make install

安装完成后,我们找一下memcached.h是在那个目录的,等下要用。

find / -name memcached.h
/usr/local/include/libmemcached/memcached.h
/usr/local/include/libmemcached-1.0/memcached.h
/usr/local/include/libmemcached-1.0/struct/memcached.h
/usr/local/src/libmemcached-1.0.18/libmemcached/memcached.h
/usr/local/src/libmemcached-1.0.18/libmemcached-1.0/memcached.h
/usr/local/src/libmemcached-1.0.18/libmemcached-1.0/struct/memcached.h
/usr/local/src/libmemcached-1.0.18/libtest/memcached.h

切换目录。

cd /usr/local/src/

下载php的扩展memcached-2.2.0。如果你是php7,请使用memcached 3x。

wget -c http://pecl.php.net/get/memcached-2.2.0.tgz

解压memcached-2.2.0的包。

tar -zxf memcached-2.2.0.tgz

切换目录到memcached-2.2.0。

cd memcached-2.2.0

在此目录下执行phpize。如果不知道phpize在什么地方,可以用find命令来查找。

/usr/local/php-5.6/bin/phpize

还是在此目录执行./configure。–with-libmemcached-dir的目录就是你刚刚查找出来的memcached.h的目录,它是上面的第一条。include/libmemcached/是编译时会自动查找的目录,所以我们只需要填上/usr/local/就可以了。

./configure --with-php-config=/usr/local/php-5.6/bin/php-config  --with-libmemcached-dir=/usr/local/ --disable-memcached-sasl

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/

编译安装成功后,它提示在/usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/。我们可以用find来查找一下memcached.so。

find / -name memcached.so
/usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/memcached.so
/usr/local/src/memcached-2.2.0/modules/memcached.so
/usr/local/src/memcached-2.2.0/.libs/memcached.so

用vi打开php.ini文件,如果你不知道使用的那个php.ini文件,可以使用phpinfo.php来查看。

vi /home/wwwroot/lamp/etc/php.ini

在php.ini末尾添加下面的代码。

extension = /usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/memcached.so

重启php-fpm

ps aux|grep php-fpm
 
kill -USR2 11473

结束

你学会了吗?在ubuntu下安装memcached,与centos系统下的安装是有一点不同的。

发表评论

邮箱地址不会被公开。 必填项已用*标注