公司的网站可能会遇到访问瓶颈。如何解决这个问题,一直是压在项目组头上的乌云。
由于没有做过大网站的经验,所以在网上去收集了很多资料,于是有了对memcached的了解以及应用。
一、编译环境的准备
---------------------------------------------------------------------------------------------------------
yum install gcc
yum install gcc-c++ libstdc++-devel
yum install zlib-devel
---------------------------------------------------------------------------------------------------------
二、源码包准备
服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-v1.4.13 。
wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent
wget https://github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz --no-check-certificate
准备Memcached的PHP扩展的源码安装包:
wget http://pecl.php.net/get/memcache-3.0.6.tgz
三、安装与配置
1、编译安装libevent
./configure --prefix=/usr
make & make install
测试libevent是否安装成功:
ls -al /usr/lib | grep libevent
2、安装memcached,同时需要安装中指定libevent的安装位置
./configure --with-libevent=/usr
make & make install
测试是否成功安装memcached:
ls -al /usr/local/bin/mem*
3、开启Memcached守护进程
---------------------------------------------------------------------------------------------------------
memcached -d -u root
---------------------------------------------------------------------------------------------------------
#连接参数
-p 监听端口
-l 连接的IP地址,默认是本机
-d start启动memecache服务
-d restart重启
-d stop|shutdown关闭服务
-d install 安装
-d uninstall 卸载
-u 以身份运行仅在root下有效
-m 最大内存使用,单位MB,默认64MB,最大2G
-M 内存耗尽时返回错误
-c 最大同时连接数量,默认是1024
-f 块大小增长因为,默认是1.25
-n 最小分配空间,key+value+flags默认48
-h 显示帮助
4、使用telnet连接测试安装是否成功
---------------------------------------------------------------------------------------------------------
telnet localhost 11211
#直接按回车会出现客户端错误.
quit #退出
---------------------------------------------------------------------------------------------------------
四、php扩展的安装
1、编译安装libmemcached
---------------------------------------------------------------------------------------------------------
./configure --prefix=/usr/local/libmemcached
make && make install
---------------------------------------------------------------------------------------------------------
2、找到phpize目录
---------------------------------------------------------------------------------------------------------
find / -name phpize
---------------------------------------------------------------------------------------------------------
根据返回值填写,在CentOS下一般是 /usr/bin/phpize。
3、安装php-memcache
---------------------------------------------------------------------------------------------------------
/usr/bin/phpize
./configure --enable-memcache --with-php-config=/usr/bin/php-config --prefix=/usr/local/memcached --with-zlib-dir
#./configure --with-php-config=/usr/bin/php-config --prefix=/usr/local/memcached --with-libmemcached-dir=/usr/local/libmemcached
make && make install
---------------------------------------------------------------------------------------------------------
安装完成后会提示:
Installing shared extensions: /usr/lib/php/modules/
4、修改PHP的配置
把php.ini中的extension_dir = “./”修改为
---------------------------------------------------------------------------------------------------------
extension_dir = “/usr/lib/php/extensions/no-debug-non-zts-2007xxxx/”
extension=memcached.so
---------------------------------------------------------------------------------------------------------
5、一些说明
安装中可能存在这样的警告信息:
---------------------------------------------------------------------------------------------------------
##configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
wget http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download
tar -zxvf re2c-0.13.5.tar.gz
cd re2c-0.13.5
./configure && make && make install
---------------------------------------------------------------------------------------------------------