发表于 2018-12-24 10:57:07

memcache+php扩展模块的安装

memcache+php扩展模块的安装
  安装memcache
1、安装libevent
#tar -zxvf libevent-2.0.19-stable.tar.gz
cd libevent-2.0.19-stable
# ./configure --prefix=/usr
#make
#make install

2、测试libevent是否安装成功
# ls /usr/lib |grep libevent
libevent-2.0.so.5
libevent-2.0.so.5.1.7
libevent.a
libevent_core-2.0.so.5
libevent_core-2.0.so.5.1.7
libevent_core.a
libevent_core.la
libevent_core.so
libevent_extra-2.0.so.5
libevent_extra-2.0.so.5.1.7
libevent_extra.a
libevent_extra.la
libevent_extra.so
libevent.la
libevent_openssl-2.0.so.5
libevent_openssl-2.0.so.5.1.7
libevent_openssl.a
libevent_openssl.la
libevent_openssl.so
libevent_pthreads-2.0.so.5
libevent_pthreads-2.0.so.5.1.7
libevent_pthreads.a
libevent_pthreads.la
libevent_pthreads.so
libevent.so

3、安装memcache
# tar -zxvf memcached-1.2.2.tar.gz
# cd memcached-1.2.2
# ./configure --with-libevent=/usr
# make
makeall-recursive
make: Entering directory `/home/mem/memcached-1.2.2'
Making all in doc
make: Entering directory `/home/mem/memcached-1.2.2/doc'
make: Nothing to be done for `all'.
make: Leaving directory `/home/mem/memcached-1.2.2/doc'
make: Entering directory `/home/mem/memcached-1.2.2'
if gcc -DHAVE_CONFIG_H -I. -I. -I.-DNDEBUG -I/usr/include   -g -O2 -MT memcached-memcached.o -MD -MP -MF ".deps/memcached-memcached.Tpo" \
          -c -o memcached-memcached.o `test -f 'memcached.c' || echo './'`memcached.c; \
      then mv -f ".deps/memcached-memcached.Tpo" ".deps/memcached-memcached.Po"; \
      else rm -f ".deps/memcached-memcached.Tpo"; exit 1; \
      fi
memcached.c: In function ‘add_iov’:
memcached.c:582: error: ‘IOV_MAX’ undeclared (first use in this function)
memcached.c:582: error: (Each undeclared identifier is reported only once
memcached.c:582: error: for each function it appears in.)
make: *** Error 1
make: Leaving directory `/home/mem/memcached-1.2.2'
make: *** Error 1
make: Leaving directory `/home/mem/memcached-1.2.2'
make: *** Error 2

(make 时出错了)

-------------
解决方案:
# vim memcached.c

修改如下几行
56 /* FreeBSD 4.x doesn't have IOV_MAX exposed. */
57 #ifndef IOV_MAX
58 #if defined(__FreeBSD__)
59 # define IOV_MAX 1024
60 #endif
61 #endif
改成
56 /* FreeBSD 4.x doesn't have IOV_MAX exposed. */
57 #ifndef IOV_MAX
58 /*#if defined(__FreeBSD__)*/
59 # define IOV_MAX 1024
60 /*#endif*/
------------
再次编译
# make
# make install

安装完成后会把memcached放到 /usr/local/bin/memcached

4、测试是否成功安装memcached:
# ls /usr/local/bin/mem*
/usr/local/bin/memcached/usr/local/bin/memcached-debug


---------------------------------------------------

安装memcache的php扩展

安装libmemcached
# tar -zxvf libmemcached-0.40.tar.gz
# cd libmemcached-0.40
# ./configure
# make
# make install


先安装php,再安装扩展包
# tar -zxvf memcache-1.5.tgz
# cd memcache-1.5
#/usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/home/web/php/bin/php-config --with-zlib-dir
#make
#make test
#make install

安装完成后提示:
# make install
Installing shared extensions:   /home/web/php/lib/php/extensions/no-debug-non-zts-20090626/

修改php.ini
然后修改php.ini
    把extension_dir = "./"
修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
并添加一行 extension=memcache.so

---------------
5、测试:
启动memcache
/usr/local/bin/memcached -d -m 10 -u root -l 10.103.20.135 -p 11211 -c 256 -P /tmp/memcached.pid

---
/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

如果报这个错误就

把/usr/local/lib 加入到/etc/ld.so.conf下
然后执行 ldconfig

---

测试代码:
页: [1]
查看完整版本: memcache+php扩展模块的安装