虚苦心観察ブログ

ブログ管理者である虚苦心が私利私欲に基づいて書いているブログです。主にガジェットのレビューだったり、画像処理のことだったりを記事にしています。

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