记一次手动安装pecl扩展--memcache
下载zlib(因为php的memcache扩展模块使用了函数» zlib 来支持数据压缩,因此安装此模块需要安装Zlib模块。 ):http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib-1.2.5.tar.gz/download
下载memcache的php扩展:http://pecl.php.net/get/memcache-3.0.6.tgz
由于Ubuntu11.04默认没有安装zlib,所以首先安装 zlib
tar -xzvf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure --prefix=/usr/dev/zlib
make
make installl
cd zlib-1.2.5
./configure --prefix=/usr/dev/zlib
make
make installl
然后安装memcache
tar -xzvf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/dev/php-5.3.6/bin/phpize //执行成功,会在当前目录生成一个configure文件
./configure --with-php-config=/usr/dev/php-5.3.6/bin/php-config --with-zlib-dir=/usr/dev/zlib --with-apxs=/usr/dev/apache/bin/apxs --with-gettext --enable-socket --enable-memcache --enable-sysvshm --enable-shmop
make
make install
cd memcache-3.0.6
/usr/dev/php-5.3.6/bin/phpize //使用phpize生成configure文件 ,phpize是编译pecl食用的,phpize一般在php安装目录的bin目录下面,可以参考此处:http://www.cnblogs.com/wangtao_20/archive/2011/3/16.html
这一步可能会报如下错误:Cannot find autoconf. Please check your autoconf installation
这是因为还没有安装autoconf或者phpize里面的autoconf设置的不对,首先使用dpkg -l 检查是否已经安装autoconf,如果没有安装,则需要下载安装:
下载 autoconf http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar -xzvf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure --prefix=/usr/dev/pecl/autoconf
make
make install 安装成功后需要更改phpsize
sudo gedit /usr/dev/php-5.3.6/bin/phpize
找到test -z "$PHP_AUTOCONF" 和 test -z "$PHP_AUTOHEADER",此例中如下:
test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf
test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=autoheader
更改为:
test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=/usr/dev/pecl/autoconf/bin/autoconf
test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=/usr/dev/pecl/autoconf/bin/autoheader
保存退出
回到memcache-3.0.6 目录
这一步可能会报如下错误:Cannot find autoconf. Please check your autoconf installation
这是因为还没有安装autoconf或者phpize里面的autoconf设置的不对,首先使用dpkg -l 检查是否已经安装autoconf,如果没有安装,则需要下载安装:
下载 autoconf http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar -xzvf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure --prefix=/usr/dev/pecl/autoconf
make
make install 安装成功后需要更改phpsize
sudo gedit /usr/dev/php-5.3.6/bin/phpize
找到test -z "$PHP_AUTOCONF" 和 test -z "$PHP_AUTOHEADER",此例中如下:
test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf
test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=autoheader
更改为:
test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=/usr/dev/pecl/autoconf/bin/autoconf
test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=/usr/dev/pecl/autoconf/bin/autoheader
保存退出
回到memcache-3.0.6 目录
./configure --with-php-config=/usr/dev/php-5.3.6/bin/php-config --with-zlib-dir=/usr/dev/zlib --with-apxs=/usr/dev/apache/bin/apxs --with-gettext --enable-socket --enable-memcache --enable-sysvshm --enable-shmop
make
make install
打开php.ini文件,此例中为/usr/dev/php-5.3.6/lib/php.ini
添加如下两行:
extension_dir = /usr/dev/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626"
extension=memcache.so
当然也可以将
/usr/dev/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/memcache.so 复制到 /usr/dev/php5.3.6/lib/php/extensions/memcache.so
或者创建一个指向/usr/dev/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/memcache.so 硬链接/usr/dev/php5.3.6/lib/php/extensions/memcache.so
然后再php.ini添加如下两行:
extension_dir = /usr/dev/php5.3.6/lib/php/extensions"
extension=memcache.so
关闭保存php.ini,重启apache,就可以在php代码中使用memcache扩展了