apache memcache php phpize php支持memcache扩展-程序员宅基地

技术标签: linux  

上篇文章写了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.tarmemecached1.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扩展了

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/robot__cat/article/details/8898583

智能推荐

虚拟服务器vsphere的网络配置,VMware vSphere 网络设置最佳实践(转)-程序员宅基地

文章浏览阅读3.8k次。管理网络:VMkernel(两个网卡)(冗余设置)虚拟机流量(VM):虚拟机网络(两个网卡)(冗余设定或者端口绑定增加性能), 注:如果资源有限的话, 管理网络和VM网络可以使用同一个VLanvMotion:VMkernel(两个网卡)VMwarevMotion可以共享管理网络,但最佳实践建议配置一个专用vMotion网络并确保1Gb以上的带宽。和管理网络类似,用两块网卡实现冗余配置。容错:VMk..._vsphere6.5虚拟机带宽限制

STM32H743 用CubeMX 搭建 SDMMC+MDAM+FATFS+FreeRTOS 模板_cubemx stm32h743 fatfs-程序员宅基地

文章浏览阅读3k次,点赞25次,收藏23次。開發版:原子阿波羅 + H743 核心版CubeMX 版本 6.2因為 H743 SDMMC+MDAM+FATFS+FreeRTOS 的資料比較少,在此提供搭建過程,也作為筆記。要注意的是根據官方文件"Getting started with STM32H7 Series SDMMC host controller",H743 的 SDMMC 已經內建 DMA,所以,在CubeMX 不會出現 DMA 選項可以勾選 SDMMC 的 DMA 必須在 MDMA 勾選設定。在CubeMX,使用F_cubemx stm32h743 fatfs

Android BLE开发详解_ble requestid-程序员宅基地

文章浏览阅读1.9k次。1、开篇本文将主要讲述Android应用开发中对BLE API的使用。Android 4.3(API 18)开始支持蓝牙4.0,但此时Android手机只能作为中心设备或者说主设备,不能作为从设备。Android 5.0(API 21)以后,Android开始支持从设备模式。Android 4.3和5.0以后的API会有一些差别,本文实例会使用5.0以后的API。本文会分别讲解主设备和从设备两种模式下的开发流程。2、从设备模式先从从设备模式开始,从设备的工作是发送广播,等待主设备发起连接,双方通过约定_ble requestid

IT6634 : 4 输入至 3 输出 HDMI2.0 18Gb/s 矩阵交换机_hdmi 444 420 422-程序员宅基地

文章浏览阅读702次。IT6634 是一款 HDMI2.0 4 输入至 3 输出矩阵/开关,支持高达 6Gbps/通道的最大信令速率。它符合最新的 HDMI2.0b 规范,并向后兼容 HDMI1.4 和 DVI 规范。IT6634 具有 6Gbps/通道功能,可支持超高分辨率内容流,例如 4Kx2K@50/60Hz 视频格式。所有 4 个输入端口和 3 个输出端口均支持高达 18Gb/s 的 HDMI2.0 数据速率,输入端口-0 还支持分辨率高达 1080P@60Hz 的 MHL2.2。除了基本的直通功能外,IT6634还支持_hdmi 444 420 422

Linux信号基础_sending signal 9-程序员宅基地

文章浏览阅读499次。linux信号简单学习与理解,信号原理、以及一些小测试,一些小函数的介绍,希望大家多多支持,都需回持续跟新的。_sending signal 9

Vue+Axios自动更新_axios实时更新-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏13次。本文首发于我的个人博客本篇文章记录了作者在使用Vue+Axios实现前端自动刷新数据时,遇到的一个坑点。场景需求在一个Vue单页应用中,使用VueRouter实现了App组件中点击链接后呈现Component组件的功能App.Vue -> Component.Vue现在需要:在Component加载出来之后,每间隔1s的时间,自动通过Axios向后端接口获取数据并更新。有问题的实现方式App.Vue,内置router-link,可以跳转呈现Component// App.Vue&l_axios实时更新

随便推点

机器学习(2)——特征工程_dictvectorizer(sparse=false)-程序员宅基地

文章浏览阅读541次。一、什么是特征工程“数据决定了机器学习的上限,而算法只是尽可能逼近这个上限”,这里的数据指的就是经过特征工程得到的数据。特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,目的是最大限度地从原始数据中提取特征以供算法和模型使用,从而提高了对未知数据的模型准确性。二、特征工程的意义特征工程将直接影响模型的预测结果三、Scikit-learn大部分直接拿过来的数据都是特征不明..._dictvectorizer(sparse=false)

【李宏毅深度学习CP18-19】自监督学习之BERT_bert-scratch-程序员宅基地

文章浏览阅读2.1k次,点赞8次,收藏19次。学习心得(1)BERT(Bidirectional Encoder Representation from Transformers)相关的很多算法名字来源于芝麻街哈哈。BERT的架构实际上是transformer中的Encoder,同样里面有很多Self-Attention和Residual connection,还有Normalization等等。(2)BERT的基本模型结构由多层Transformer构成,包含2个预训练任务:掩码语言模型(Mask Language Model,MLM)和下一个句_bert-scratch

CSS+HTML实现毛玻璃效果_html玻璃效果-程序员宅基地

文章浏览阅读912次。先贴效果图背景图css代码.mainBg { width: 800px; height: 220px; background-image: url(img/header.png); background-size: 100% 100%;}区域模糊背景部分/* 背景 */textP { padding: 0 59px; width: 320px; height: 220px; box-sizing: border-box;}/* 给文本设置居中 */.text {_html玻璃效果

TCP  UDP  IP PID  VID: Socket ServerSocket,Android开发 Socket通信简单实例_tcp vid-程序员宅基地

文章浏览阅读2.9k次。TCP是Tranfer Control Protocol的 简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行..._tcp vid

136. 只出现一次的数字-程序员宅基地

文章浏览阅读891次。给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素题目解题思路代码class Solution { public int singleNumber(int[] nums) { int single = 0; for (int num : nums) { single ^= num; } return single; }}如果对你有

react-native-doc-viewer实现文档预览-程序员宅基地

文章浏览阅读4k次。react-native项目要求实现word,excel,pdf,mp4,png等格式附件图片的在线预览,最终选用react-native-doc-viewer实现,具体步骤如下:1、安装react-native-doc-viewer (1) npm install react-native-doc-viewer --save (2)react-native link react-native-doc-viewer2、修改源代码 (1) 因为react-n..._react-native-doc-viewer

推荐文章

热门文章

相关标签