(1)将phpize加入环境变量
(1)将php的bin目录路径增加到 ~/.bash_profile中,为了方便调用
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin
source ~/.bash_profile # 及时生效!
(2)memcache目录中本来没有configure文件,所以没法编译
yum install autoconf
# 然后先执行命令:phpize才会生成configure文件
phpize是干什么的
phpize是用来扩展php扩展模块的-->
通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize。
或者说,phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下
(2)编译安装memcache
##编译
./configure
##安装
make && make install
(3)修改php主配置文件,增加memcache模块
vim /usr/local/lnmp/php/etc/php.ini
# 873 extension=memcache.so
(4)重新加载php
/etc/init.d/php-fpm reload
(5)可以查看是否加载成功
php -m | grep mysql
php -m | grep memcache # 核心
(6)安装memcached后台进程
yum install -y memcached
(7)查看memcached的配置文件
cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024" ##最大链接数1024
CACHESIZE="64"
OPTIONS="" ##任何,如果写为OPTIONS="-l 127.0.0.1" 即为只监听本机的11211端口
(8)启动memcached
netstat -antlupe|grep memcache
systemctl start memcached
netstat -antlupe|grep memcache
systemctl status memcached
(9)telnet测试
yum install telent -y
telnet localhost 11211 # 测试!
# stats(查看状态)
# set name 0 0 6 (0编号 0缓存时间(此处0代表不限制时间) 6限制字符数)
# key:name;编号:0;缓存时间:0(永久)valuce值:6位
# set name 0 5 6 ##设置缓存5s,过5s再获取name,为空
(10)拷贝php页面到nginx默认发布目录
cp memcache.php example.php /usr/local/lnmp/nginx/html/
# memcache.php监控页面
# example.php测memcache命中率-->提供的测试页面(php应用代码调用,实现缓存)
修改内容
vim memcache.php
define('ADMIN_USERNAME','memcache'); ## Admin Username(自定义)-->页面加密!
define('ADMIN_PASSWORD','westos'); ## Admin Password(自定义)
$MEMCACHE_SERVERS[] = '172.25.2.150:11211'; // ip addr show 查看!
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
# 只留一个主机,memcache没有转发或负载均衡机制,只能一个一个添加
# 因为本实验只有一个主机,其实可以添加多个!
(11)相关服务保证开启
cd /usr/local/lnmp/nginx/html/
vim index.php # 配置首页
vim ../conf/nginx.conf # 打开php的支持并配置首页
nginx -t relaod ## # 保证nginx服务开启
/etc/init.d/php-fpm start # 保证fastcgi(php-fpm)开启
(12)测试
# 访问http://172.25.2.150/memcache.php
# 输入用户名密码,可以查看memcache命中率
# 使用http://172.25.230.5/example.php不停刷新来测试
说明:只访问了两次,所以第二次命中缓存!
(13)在物理机上分别对两个页面进行压测
ab -c 10 -n 5000 http://172.25.230.5/index.php # memcahe.php做对比
# 很慢,因为没有缓存,而且failed比较多
# 说明:10个并发,5000个请求
观察时间和命中率