CentOS 5.6下Memcached和PHP的Memcache扩展安装配置

我的配置环境为:

Linux版本:CentOS 5.6
PHP版本:PHP 5.2.17
Memcached版本:1.4.9
Memcache版本:2.2.6

Memcached需要libevent支持,所以需要先检查libevent是否已经安装。

下面是Memcached的安装过程:

# tar zvxf memcached-1.4.9.tar.gz
# cd memcached-1.4.9
# ./configure --prefix=/usr/local/memcached
# make
# make install

启动Memcached:

# /usr/local/memcached/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root

参数128指定了内存使用量

接下来是为PHP安装memcache扩展:

# gzip -d memcache-2.2.6.tgz
# tar xvf memcache-2.2.6.tar
# cd memcache-2.2.6
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
# make
# make install

最后将如下配置信息添加到php.ini文件中:

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

备注:/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/这个路径可能会有不同,以您机器中的为准。

管理Memcached的Service脚本

如Memcached已在Linux中安装完毕,且被部署到/usr/local/memcached这个路径下,接下来我们来开始为其安装用于启动和停止的服务管理脚本。

首先,通过vi在/etc/rc.d/init.d路径下新建一个名为memcached的脚本文件,命令如下:

vi /etc/rc.d/init.d/memcached

然后,向其中写入Shell脚本如下:

#!/bin/sh 

# chkconfig: 2345 90 50
# description: Memcached Service Daemon
#
# processname: Memcached
#
# Source function library.
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
#[ ${NETWORKING} = "no" ] && exit 0
#[ -r /etc/sysconfig/dund ] || exit 0
#. /etc/sysconfig/dund
#[ -z "$DUNDARGS" ] && exit 0
 
MEMCACHED="/usr/local/memcached/bin/memcached"
 
start()
{
    echo -n $"Starting Memcached: "
    daemon $MEMCACHED -u daemon -d -m 32 -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
    echo
}
stop()
{
    echo -n $"Shutting down Memcached: "
    killproc memcached
    echo
}
 
[ -f $MEMCACHED ] || exit 1
# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 3
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac
exit 0

保存退出vi后,执行下面的命令来安装这个脚本

chmod 777 /etc/rc.d/init.d/memcached
chkconfig --add memcached
chkconfig --level 235 memcached on

然后可以通过下面的命令来检查是否安装成功

hkconfig --list | grep memcached
service memcached start
service memcached stop
service memcached restart

 

Memcached连接超时故障排除

在一次例行检查日志的时候,发现Nginx日志中出现了大量的PHP连接Memcached超时的报错信息,如下:

PHP Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection timed out (110) in ...

连上服务器检查Memcached进程运行正常,然后我用一段测试代码检查Memcached是否能够正常连接,结果也很正常。

于是又仔细分析日志,发现那段报错信息是间隔出现的,说明是有一定几率的。这时我回想起上周因为架构问题刚刚把PHP的Session存储路径指向到了Memcached里,可能是因为这个配置增加了Memcached的负载,从而导致在并发量较高时,Memcached出现连接超时的现象。

找到原因就容易解决了。重新调整Memcached的启动参数,增加-c参数来提高连接数量。默认为1024,可以逐步增加以找到最佳数值。我设置为2048。

启动命令为:
memcached -d -m 256 -c 2048 -l 127.0.0.1 -p 11211 -u root

如果服务器充裕,可以考虑分布式的memcached集群,以降低单个节点上的压力

时间: 2024-09-14 19:01:31

CentOS 5.6下Memcached和PHP的Memcache扩展安装配置的相关文章

Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置

apache|mysql|php5 先从各官方网站下了APACHE2.050.PHP5.MYSQL4.0.20.PHPMYADMIN2.57 apache_2.0.50-win32-x86-no_ssl.msi php-5.0.0-Win32.zipmysql-4.0.20d-win.zipphpMyAdmin-2.5.7.zip 操作系统 win2003 系统盘为: D盘 第一步: 安装apache 并配置支持PHP 点击安装文件apache_2.0.50-win32-x86-no_ssl.m

Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置_php技巧

先从各官方网站下了APACHE2.050.PHP5.MYSQL4.0.20.PHPMYADMIN2.57  apache_2.0.50-win32-x86-no_ssl.msi  php-5.0.0-Win32.zip  mysql-4.0.20d-win.zip  phpMyAdmin-2.5.7.zip  操作系统 win2003 系统盘为: D盘  第一步: 安装apache 并配置支持PHP  点击安装文件apache_2.0.50-win32-x86-no_ssl.msi  将apac

Win2003下APACHE + PHP5 + MYSQL4 + PHPMYADMIN的简易安装配置

先从各官方网站下了APACHE2.050.PHP5.MYSQL4.0.20.PHPMYADMIN2.57apache_2.0.50-win32-x86-no_ssl.msi php-5.0.0-Win32.zipmysql-4.0.20d-win.zipphpMyAdmin-2.5.7.zip操作系统 win2003 系统盘为: D盘第一步: 安装apache 并配置支持PHP点击安装文件apache_2.0.50-win32-x86-no_ssl.msi将apache安装在 D:apache2

php扩展memcached和memcache的安装配置方法_Linux

php连接memcached缓存服务器的客户端有两个,一个是memcache是比较底层的开发库,memcached是比较新的开发库,php安装这两个扩展中的任意一个后就可以在编写php代码时使用的memcached缓存数据,达到缓存php执行的结果 1.安装memcachetar -zxvf memcache-2.2.7.tgz cd memcache-2.2.7 /usr/local/php/bin/phpize ./configure –with-php-config=/usr/local/

Redis 对比 Memcached 并在 CentOS 下进行安装配置详解_Redis

Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,本篇文章主要介绍了Redis 对比 Memcached 并在 CentOS 下进行安装配置详解,有兴趣的可以了解一下. 了解一下 Redis Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完成安装工作,并让它开始与应用程序顺畅协作.换句话来说,只需投入一小部分时间与精力,大家就能获得立竿

CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)_Linux

一.源码包准备 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-v1.4.4 .下载:http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent, libevent的最新版本是libevent-1.4.13-stable.(如果你的系统已经安装了libevent,可以不用安装)官网:http://w

memcached 在linux下的安装配置,及java操作

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据.简单的说就是将

CentOS 6.4下安装部署OpenStack云计算平台的方法_OpenStack

前言 OpenStack 是一个开源的 IaaS(基础设施及服务)云计算平台,让任何人都可以自行建立和提供云端运算服务. OpenStack 由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目(9 个):       1.计算 (Compute) - Nova:       2.网络和地址管理 - Neutron:       3.对象存储 (Object) - Swift:       4.块存储 (Block) - Cinder:       5.身份 (Identity) -

Linux下Memcached服务器部署操作步骤

操作系统:CentOS 6.x 64位 实现目的:安装部署Memcached服务器 一.防火墙设置 vi /etc/sysconfig/iptables #编辑防火墙配置文件,添加下面代码 -A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT :wq! #保存退出 service iptables restart #最后重启防火墙使配置生效 二.关闭SELINUX vi /etc/selinux/config #S