热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

apachememcachephpphpizephp支持memcache扩展

上篇文章写了centos下编译安装lamp,这次写一下如果支持memchememcached的工作原理首先memcached是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客

上篇文章写了centos下编译安装lamp,这次写一下如果支持memche

memcached 的工作原理

首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。


安装memcache需要安装libevent支持,

如果没有安装会提示If it's already installed, specify its path using --with-libevent=/dir/

所以要安装libevent  下载libevent

我把所有的编译包都放在了soft下

[root@localhost soft]# tar -zvxf libevent-1.4.9-stable.tar.gz
[root@localhost soft]# cd libevent-1.4.9-stable
[root@localhost libevent-1.4.9-stable]# ./configure --prefix=/usr/local/libevent
[root@localhost libevent-1.4.9-stable]# make
[root@localhost libevent-1.4.9-stable]# make install
我是把libevent安装到了/usr/local/libevent下了

然后安装memcached服务

[root@localhost soft]# tar -zvxf memcached-1.2.6.tar.gz
[root@localhost soft]# cd memcached-1.2.6
[root@localhost memcached-1.2.6]# mkdir -p /usr/local/memcached
[root@localhost memcached-1.2.6]#./configure --prefix=/usr/local/memcached/ --with-libevent=/usr/local/libevent/
[root@localhost memcached-1.2.6]#make
[root@localhost memcached-1.2.6]#make install
在启动memcache时会遇到如下的错误
[root@crs2 memcached-1.4.5]#  /usr/local/memcached/bin/memcached -p 11211 -l 127.0.0.1 -d -u nobody -P /var/run/memcached.pid -m 64M -c 1024

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

解决方法

[root@localhost memcached-1.2.6]# LD_DEBUG=libs /usr/local/memcached/bin/memcached -v
      9939:     find library=libevent-1.4.so.2 [0]; searching
      9939:      search cache=/etc/ld.so.cache
      9939:      search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64  (system search path)
      9939:       trying file=/lib64/tls/x86_64/libevent-1.4.so.2
      9939:       trying file=/lib64/tls/libevent-1.4.so.2
      9939:       trying file=/lib64/x86_64/libevent-1.4.so.2
      9939:       trying file=/lib64/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/tls/x86_64/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/tls/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/x86_64/libevent-1.4.so.2
      9939:       trying file=/usr/lib64/libevent-1.4.so.2
      9939:
/usr/local/memcached/bin/memcached: error while loading shared libraries: libeve  nt-1.4.so.2: cannot open shared object file: No such file or directory

明显是查找libevent-1.4.so.2查找不到,所以需要创建一个软连接

[root@localhost memcached-1.2.6]# ln -s /usr/local/libevent/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
具体的是创建到什么位置,以红色trying file文件的红色字体为准


启动参数解释

-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。

查看memecached时候启动守护进程

[root@localhost memcached-1.2.6]# ps -ef | grep 11211

nobody    9942     1  0 18:55 ?        00:00:00 /usr/local/memcached/bin/memcached -p 11211 -l 127.0.0.1 -d -u nobody -P /var/run/memcached.pid -m 64M -c 1024
root     10012  2665  0 19:05 pts/0    00:00:00 grep 11211


到此说明memcach服务安装完成,下一步安装php的memcache的扩展了

php的memcache扩展有两个版本,一个是 memcache(下载地址),另一个是基于libmemcached-0.42.tar.tar的memecached1.0.2版本

 网上查的资料是说前一个是原生的,后一个比前一个功能更强大。比较推荐使用基于libmemcahced 库的memcached扩展。

支持memcache提供的CAS操作,稳定性和效率也更好。

我这里把两个安装都安装了,安装如下:

1、安装php的memcache扩展

[root@localhost soft]# tar -zxvf memcache-3.0.8.tgz
[root@localhost soft]# cd memcache-3.0.8
[root@localhost soft]# /usr/local/webserver/php5/bin/phpize
[root@localhost soft]# ./configure --with-php-cOnfig=/usr/local/webserver/php5/bin/php-config
[root@localhost soft]# make
[root@localhost soft]# make install
好了,如果中间没有出错的话,到此php的memcache就安装完成了,在make install的时候,会提示你把memcache.so安装的路径如:

installing   /usr/local/webserver/php5/lib/php/extensions/no-debug-non-zts-20090626/

然后修改配置文件,让php支持memcache扩展,在php.ini的结尾加上

extension_dir="/usr/local/webserver/php5/lib/php/extensions/no-debug-non-zts-20090626/"
extension = memcache.so

保存退出,然后重启apache,查看phpinfo,就可以看到memcache扩展了

2、基于libmemcached 库的memcached扩展

安装libmemcached

[root@localhost soft]#  mkdir /usr/local/libmemcached
[root@localhost soft]# tar -zvxf libmemcached-0.42.tar.gz
[root@localhost soft]# cd libmemcached-0.42
[root@localhost libmemcached-0.42]# ./configure --prefix=/usr/local/libmemcached/ --with-memcached
[root@localhost libmemcached-0.42]# make
[root@localhost libmemcached-0.42]# make install
安装 memcached

[root@localhost soft]# tar -zvxf memcached-1.0.2.tgz
[root@localhost soft]# cd memcached-1.0.2
[root@localhost memcached-1.0.2]# /usr/local/webserver/php5/bin/phpize
[root@localhost memcached-1.0.2]# ./configure --with-php-cOnfig=/usr/local/webserver/php5/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/
[root@localhost memcached-1.0.2]# make
[root@localhost memcached-1.0.2]# make install
好了,如果中间没有出错的话,到此php的memcached就安装完成了,在make install的时候,会提示你把memcached.so安装的路径如:

installing   /usr/local/webserver/php5/lib/php/extensions/no-debug-non-zts-20090626/

然后修改配置文件,让php支持memcache扩展,在php.ini的结尾extension = memcached.so下边加上
extension = memcached.so

保存退出,然后重启apache,查看phpinfo,就可以看到memcached扩展了


推荐阅读
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了如何在方法参数中指定一个对象的协议,以及如何调用符合该协议的方法。以一个具体的示例说明了如何在方法参数中指定一个UIView子类对象,并且该对象需要符合PixelUI协议,同时方法需要能够访问该对象的属性。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • Telnet的使用(Telnet远程连接Linux)
    一、环境描述:客户端:Win10操作系统 ... [详细]
author-avatar
zpy7005434
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有