CentOS 下源码编译安装 Memcached 与 PHP 扩展指南
本文介绍在 CentOS 环境中通过源码编译方式部署 Memcached 服务端及 PHP 扩展的完整流程。从 libevent 依赖处理、服务参数启动配置,到 php.ini 模块加载及连通性测试,提供可操作的技术参考。
准备条件与源码包获取
Memcached 基于 C 语言开发,运行依赖于 libevent 库以处理 Socket 连接。因此,编译安装前需确保系统中存在兼容版本的 libevent。若系统已通过包管理器安装了较新且兼容的 libevent,通常无需手动编译该依赖;否则,建议下载指定版本以确保兼容性。
以下是构建环境所需的基础安装包:
- Memcached 主程序:建议使用稳定版本(如 v1.4.4),地址:http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
- Libevent 依赖库:地址:http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
- PHP Memcache 扩展:地址:http://pecl.php.net/get/memcache-2.2.5.tgz
可以使用 wget 命令将上述资源下载至服务器本地目录。
安装与配置步骤
第 1 步:编译安装 Libevent
目的:为 Memcached 提供底层的网络事件处理支持。此步骤仅在未安装合适版本 libevent 时需要执行。
- 解压源码包并进入目录:
tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
- 执行配置、编译与安装,默认安装路径通常设为
/usr:
./configure --prefix=/usr
make
make install
第 2 步:验证 Libevent 安装
目的:确认动态链接库文件已正确写入系统目录。
使用以下命令检查 /usr/lib 目录下是否存在 libevent 相关文件:
ls -al /usr/lib | grep libevent
若返回包含版本号的文件列表(如 .so.2 或 .a 结尾),则表明安装成功。
第 3 步:编译安装 Memcached 主程序
目的:编译生成 Memcached 服务端二进制文件。
- 解压主程序包并进入目录:
tar zxvf memcached-1.4.4.tar.gz
cd memcached-1.4.4
- 配置编译参数。务必通过
--with-libevent指定上一步安装的 libevent 位置:
./configure --with-libevent=/usr
make && make install
成功后,memcached 二进制文件通常会自动放置在 /usr/local/bin/memcached 路径下。
第 4 步:验证 Memcached 安装
目的:确认服务端二进制文件已就绪。
ls -al /usr/local/bin/mem*
输出应包含指向 memcached 的可执行文件链接。
第 5 步:安装 PHP Memcache 扩展
目的:使 PHP 脚本具备连接和操作 Memcached 的能力。
- 解压 PHP 扩展包:
tar vxzf memcache-2.2.5.tgz
cd memcache-2.2.5
- 使用当前服务器的
phpize工具准备编译环境。注意替换为你实际的 phpize 路径:
/usr/local/webserver/php/bin/phpize
- 配置编译选项。需明确指定启用 memcache、php-config 路径以及 zlib 目录:
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
- 编译并安装:
make
make install
安装完成后,终端会提示生成的 .so 共享扩展文件存放的具体绝对路径。
第 6 步:配置 PHP 识别扩展
目的:让 PHP 运行时加载 memcache.so 模块。
- 找到
php.ini配置文件,修改extension_dir参数,将其指向第 5 步中输出的具体目录:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-xxxx/"
- 在
php.ini末尾添加一行以载入扩展:
extension=memcache.so
Memcached 服务设置与排错
启动服务端
推荐使用守护进程模式启动,以便在后台持续运行。基本命令格式如下:
memcached -d -m 10 -u root -l [IP] -p 11211 -c 256 -P /tmp/memcached.pid
参数说明:
-d:以守护进程方式运行。-m:分配给缓存的内存大小(单位 MB)。-u:运行服务的用户身份。-l:绑定的监听 IP(生产环境建议使用内网 IP)。-p:监听的端口号(默认为 11211)。-c:最大并发连接数限制。-P:保存进程 ID (PID) 的文件路径,用于后续管理进程。
进程管理与状态检查
停止服务:
kill $(cat /tmp/memcached.pid)
检查服务是否存活:
通过查看端口监听状态来确认:
netstat -ant | grep 11211
若看到 LISTEN 状态,表示服务正常启动。
环境测试
创建一个简单的 PHP 测试文件(如 test.php),验证客户端与服务端的连通性及数据读写功能:
<?php
$mem = new Memcache;
// 请根据实际 IP 修改
$mem->connect("localhost", 11211);
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
如果页面上输出了 "This is a test!",即表示 Memcached 环境和 PHP 扩展均已配置成功。
以上就是 CentOS 下配置 Memcached 与 PHP 扩展的详细内容,更多关于 Linux 缓存加速的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









