设为首页 收藏本站
查看: 1569|回复: 0

[经验分享] memcache+php扩展模块的安装

[复制链接]
YunVN网友  发表于 2018-12-24 10:57:07 |阅读模式
memcache+php扩展模块的安装

  安装memcache
1、安装libevent
[root@localhost libevent-2.0.19-stable]#tar -zxvf libevent-2.0.19-stable.tar.gz
cd libevent-2.0.19-stable
[root@localhost libevent-2.0.19-stable]# ./configure --prefix=/usr
[root@localhost libevent-2.0.19-stable]#make
[root@localhost libevent-2.0.19-stable]#make install

2、测试libevent是否安装成功
[root@localhost libevent-2.0.19-stable]# 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
[root@localhost mem]# tar -zxvf memcached-1.2.2.tar.gz
[root@localhost mem]# cd memcached-1.2.2
[root@localhost memcached-1.2.2]# ./configure --with-libevent=/usr
[root@localhost memcached-1.2.2]# make
make  all-recursive
make[1]: Entering directory `/home/mem/memcached-1.2.2'
Making all in doc
make[2]: Entering directory `/home/mem/memcached-1.2.2/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/mem/memcached-1.2.2/doc'
make[2]: 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[2]: *** [memcached-memcached.o] Error 1
make[2]: Leaving directory `/home/mem/memcached-1.2.2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mem/memcached-1.2.2'
make: *** [all] Error 2

(make 时出错了)

-------------
解决方案:
[root@localhost memcached-1.2.2]# 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*/
------------
再次编译
[root@localhost memcached-1.2.2]# make
[root@localhost memcached-1.2.2]# make install

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

4、测试是否成功安装memcached:
[root@localhost memcached-1.2.2]# ls /usr/local/bin/mem*
/usr/local/bin/memcached  /usr/local/bin/memcached-debug


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

安装memcache的php扩展

安装libmemcached
[root@localhost mem]# tar -zxvf libmemcached-0.40.tar.gz
[root@localhost mem]# cd libmemcached-0.40
[root@localhost mem]# ./configure
[root@localhost mem]# make
[root@localhost mem]# make install


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

安装完成后提示:
[root@localhost memcache-1.5]# 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655222-1-1.html 上篇帖子: Redhat Nginx+PHP安装配置 下篇帖子: ubuntu/redhat/centOS下源码安装nginx+php+mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表