CentOS7+PHP7+memcached
はじめに
構築済みのサーバーでmemcachedの書き込みが遅い、という問題に出くわしたのでそれの解決方法をまとめます。
想定環境
- CentOS7
- PHP7
- memcached
- libmemcached 1.0.16 <- これが原因
簡単な解説
問題はmemcached本体ではなくPHPが使うlibmemcachedがバグっていたからでした。 qiita.com この問題はlibmemcachedのバージョンアップで解決されます。
ただし、自分でコンパイルしてインストールはしたくありません。 いえ、僕はコンパイル好きなのでしたいのですが、諸事情で許されません。 なのでパッケージのインストールのみで対応します。
解決方法
CentOS標準のパッケージでは現在(2019年3月25日)でもlibmemcachedは1.0.16です。 しかしCentOSにはremiリポジトリというものがあり、PHPに関するパッケージが一通り準備されています。またパッケージだけでなくPHP本体も用意されており、CentOSの標準リポジトリとは別のPHPをインストール可能です。 この別のPHPは/usr/local以下にはインストールされず、/opt以下にインストールされます。同様に関連するパッケージも/opt以下にインストールされるのでPATHさえ通してしまえば使い方は標準のPHPと同じです。
今回の解決方法では別のPHPのインストールから行います。 その前に既存のPHPをアンインストールします。
$ sudo yum remove php
あとはインストールするだけ。 *は好きなマイナーバージョンを指定してください
$ sudo yum install php7* php7*-php-pecl-memcached