1、先安装memcached服务
1.1、安装libevent
下载包
$tar -zxvf libevent-2.1.8-stable.tar.gz
$cd libevent-2.1.8
$./configure --prefix=/usr/local
$make && sudo make install
注:上面的prefix是不是就是导致后面的坑的原因?默认是装在哪个目录?
还要安转一个libmemcache库,但是我忘记是第一步还是第二步需要这个了,好像是第二步安装PHP扩展需要先安装这个库,安装方法跟安装libevent一样。
1.2、安装memcached
下载包
$tar -zxvf ...
$cd ...
$./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/bin
$make && sudo make install
坑:上面的--with-libevent=/usr/local/bin
非常重要,不然之后memcached服务启动后,只要连接就出错。因为他默认搜索libevent的路径是/usr/bin
。
启动服务:
$/usr/local/memcached/bin/memcached -d -m 128 -u root
1.3添加自启动
在/etc/systemd/system
下创建memcached.service
文件,输入以下内容:
[Unit]
Description=Memcached
Before=httpd.service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/memcached/bin/memcached -u root -m 128
[Install]
WantedBy=multi-user.target
然后
$sudo systemctl start memcached.service
2、安装相应的PHP memcache扩展
注:PHP有两个memcache扩展,分别为:memcache和memcached,注意最后一个字母d。。。
由于我跟着书来,所以选择安装memcache。但是memcache貌似不支持PHP7,所以在网上找了个非官方修改过的,可以支持php7的。
$git clone https://github.com/websupport-sk/pecl-memcache memcache
$cd memcache
$phpize
$./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
$make && sudo make install
安装成功的话,会提示你memcache.so
文件的位置,然后把他添加到php.ini
中
[Memcache]
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/memcache.so
重启php-fpm服务。
查看phpinfo中有没有安装成功
PHP中测试:
<?php
$mc = new Memcache();
$mc->connect('127.0.0.1');
$mc->set('key', 'value', 0, 10);
echo $mc->get('key');
输出value
表示大功告成!
参考:
1、Memcached笔记——(一)安装&常规错误&监控
2、PHP7 下安装 memcache 和 memcached 扩展
3、PHP核心技术与最佳实践