LoginSignup
8
8

More than 5 years have passed since last update.

OSX で brew, phpenv で作成した環境に memcached を設定するメモ

Posted at

OSX, phpenv で作成した環境に memcached を設定する

メモです。

おそらく、 PECL のライブラリは memcached に限らず、ほぼ同様に設定できるはず。

※以下の例では、 php 5.4.16 を使用している。

brew から、memcached, libmemcached をインストール

memcached, libmemcached は brew からインストール。

$ brew install memcached
$ brew install libmemcached

php から使えるようにする。

  1. PECL のライブラリを取得。
  2. phpize
  3. ./configure
  4. make && make install
  5. 「extension=memcached.so」をどこかに設定

任意ディレクトリに移動し、phpize, ./configure, make, make install

例えば以下のコマンド。

$ cd ~/Documents/tmp/pecl_librares/memcached # どこでも良い
$ wget http://pecl.php.net/get/memcached-2.2.0.tgz
$ tar zxvf memcached-2.2.0.tgz
$ cd memcached-2.2.0
$ phpize
$ ./configure
$ make
$ make install
Installing shared extensions:     ~/.phpenv/versions/5.4.16/lib/php/extensions/no-debug-non-zts-20100525/
$ ls ~/.phpenv/versions/5.4.16/lib/php/extensions/no-debug-non-zts-20100525/
memcached.so xdebug.so

これで、今 phpenv で使用しているバージョンの ./lib/php/extensions/ 以下に memcached.so が作成される。

memcached.ini を作成して memcached.so を適用

php.ini に記載しても同じ。

./conf.d/ 以下の *.ini を読み込むように設定済みなので、今回は memcached.ini に書くことにした。

$ vi ~/.phpenv/versions/5.4.16/etc/conf.d/memcached.ini
extension=memcached.so
$ php -i | grep mem # インストールされているか確認する

※当たり前ですが、この状態でWEBから動作確認すると、 memcached が起動してないエラーとなる。(memcached 起動させてないし、webサーバー再起動させてないし。)

hoge.php
$mc = new Memcached(); 
$mc->addServer("localhost", 11211); 

$set_result = $mc->set("foo", "Hello!"); 
var_dump($mc->getResultCode());//int 47 // 47 = MEMCACHED_SERVER_TEMPORARILY_DISABLED via:http://www.php.net/manual/ja/memcached.getresultcode.php

memcached の自動起動を有効にする

brew でインストールしているので、提供されている plist を使う。

自動起動用ディレクトリを作成

無ければ作る。

$ mkdir -p ~/Library/LaunchAgents

作成したディレクトリに homebrew が提供する plist をコピー

普通にコピーすれば良いだけ。

$ cp /usr/local/Cellar/memcached/1.4.17/homebrew.mxcl.memcached.plist ~/Library/LaunchAgents/
/usr/local/Cellar/memcached/1.4.17/homebrew.mxcl.memcached.plist -> ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist

/usr/local/Cellar/memcached/1.4.17/homebrew.mxcl.memcached.plist は、 RunAtLoad が true なので、ロードされれば起動する。

  <key>RunAtLoad</key>
  <true/>

memcached の起動と動作確認

launchctl load で起動させる。

$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist
$ ps ax | grep memcached # 起動しているのを確認する
48184   ??  S      0:00.01 /usr/local/opt/memcached/bin/memcached -l localhost

webサーバーの再起動

必要に応じて web サーバーも再起動しておく。

$ sudo apachectl restart

これで良いはず。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8