从零开始安装memcached和php memcached扩展

前情提要

centos 7 需要在wordpress使用memcached扩展加速。由于没有使用宝塔面板,所以需要手动安装一下扩展。

理论上,只需要把宝塔上安装好的扩展,然后复制粘贴到我需要的系统中,然后在配置文件上改一下就可以了。但是我也不知道为什么,我始终把原来的文件复制过去之后就不能正常使用,即便是改了配置文件也不行,然后最后只能一步一步查找方法,选择手动编译。我看宝塔上其实他那个安装也是下载了之后,然后再进行一次编译,只不过宝塔上是使用的脚本进行自动编译,但是我确实不太会写shell脚本,所以我只能一步一步的写命令行了。

安装步骤

前期准备

需要提前准备以下内容。

  • centos7
  • 已经安装好的php任意版本

Memcached 具体安装步骤

  1. yum 安装 memcached
yum install libevent libevent-devel  #自动下载安装(Redhat/Fedora/Centos)
yum install memcached  #自动安装memcached
  1. 手动安装编译 memcached

memcached 下载链接

wget http://memcached.org/latest
tar -zxvf memcached-1.6.23.tar.gz
cd memcached-1.6.23
./configure && make && make test && sudo make install

这里运行make test可能会遇到报错,还需要安装perl-Test-Simple

# 安装 perl-Test-Simple
sudo yum install perl-Test-Simple

可以考虑先yum安装,然后使用编译的新版本覆盖,已实现使用新的程序的目的。这样子比较省事,不用自己再设置system服务文件。

  1. 运行
# 前台运行
/usr/local/memcached/bin/memcached -p 11211 -m 64m

# 后台运行
/usr/local/memcached/bin/memcached -p 11211 -m 64m -d
  1. 作为服务运行
# Memcached.service

[Unit]
Description=Memcached
Before=httpd.service
After=network.target

[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/memcached
ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

[Install]
WantedBy=multi-user.target

这是Memcached.service的内容

配置文件在/etc/sysconfig/memcached根据情况修改

PHP-Memcached 具体安装步骤

  1. 需要已经安装好php,不多赘述。
  2. 下载源码,解压,进入
# 下载源码
wget https://pecl.php.net/get/memcached-3.2.0.tgz
# 解压
tar -zxvf memcached-3.2.0.tgz
# 进入文件夹
cd memcached-3.2.0
  1. 根据readme文件,需要执行这几个步骤
phpize
./configure
make
make test

如果直接运行可能会不能运行,需要一些前期准备。

  • 找到phpize所在目录,/vhs/kangle/ext/php74/bin/phpize
  • 找到php-config所在目录,/vhs/kangle/ext/php74/bin/php-config
  • 找到libmemcached所在目录,/usr/include/libmemcached

其中麻烦的是第三个,需要在前面编译好Memcached之后才能找到第三个目录,前面两个根据实际情况进行查找,第三个一般都是在这一个默认目录。

实际运行的命令样式,我这里使用的kangle作为示范。

phpize
./configure --with-php-config=/vhs/kangle/ext/php74/bin/php-config --with-libmemcached-dir=/usr/include/libmemcached
make
make test

运行之后就可以在目录下找到memcached.so

  1. 设置扩展

将编译好的扩展文件memcached.so放置在扩展目录下,然后在php.ini文件中添加一行

extension=memcached.so
  1. 最后重启php服务即可完成安装。

可以使用phpinfo();检查一下扩展有没有成功安装。