PECL::memcacheインストールしようとしたらphpizeでこけた(泣)

今日はPECLモジュールをインストールする際にphpizeでこけた時の問題と原因を書いておこうと思います。


phpのバージョンは5.2.6
OSはFreeBSD 6.3です。


まず今回の問題が発生した経緯ですが、phpmemcachedが使いたかったのでPECL::memcachのお世話になろうとして


# pecl install memcache


としたところ。

…
running: phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.


ERROR: `phpize' failed

とかエラーが出てインストールに失敗します。
んで、autoconfとか書いてあるのでチェックしてみます。

# ls /usr/local/bin | grep autoconf
autoconf213
autoconf259
#


みたいな感じでautoconfがいくつか見つかりました。
autoconfはあったので次は"phpize"の中身を見てみました


#vim /usr/local/bin/phpize


そして$PHP_AUTOCONFを検索してみます。
/$PHP_AUTOCONF


すると

101 phpize_check_autotools()
102 {
103   test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf
104   test -z "$PHP_AUTOHEADER" && PHP_AUTOHEADER=autoheader
105
106   if test ! -x "`$php_shtool path $PHP_AUTOCONF`"; then
107     cat <

のあたりがハイライトされます。
103 test -z "$PHP_AUTOCONF" && PHP_AUTOCONF=autoconf


を見るとPHP_AUTOCONF=autoconf
となっているので、とりあえず/usr/local/bin/にautoconfのリンクを張ってみます。


#ln -s /usr/local/bin/autoconf213 /usr/local/bin/autoconf


autoheaderもついでに


#ln -s /usr/local/bin/autoheader213 /usr/local/bin/autoheader


んでもう一回
# pecl install memcache


ちゃんとインストールすることができました。
どうやらautoconfを複数入れていたせいだったみたいですね。反省


php.iniにextension=memcache.so


を追加して


# php -m | grep memcache


で確認。


次にmemcachedを起動してちゃんとphpから利用できるかの確認
# memcachedの起動
# memcached -d -m 64 -l 127.0.0.1 -p 11211 -u nobody


ちゃんと起動しているかの確認

# ps ax | grep memcached
31548  ??  Ss     0:00.15 ./memcached -d -m 64 -l 127.0.0.1 -p 11211 -u nobody
32567  p0  R+     0:00.00 grep memcache
#

起動はしている感じですね^^
んで、PHPから適当に値を保存、参照するスクリプトを書いて。


実行。



http://gihyo.jp/dev/feature/01/memcached/0002?page=3 で紹介されている 、memcached-tool を使って
ダウンロード→ http://code.sixapart.com/svn/memcached/trunk/server/scripts/memcached-tool


memcachedの状態を使って確認してみる。(memcached-toolの使い方は上記の記事参照)


#./memcached-tool localhost:11211

  #  Item_Size   Max_age  1MB_pages Count   Full?
  5     232 B      245 s       1       1      no


ちゃんと使われていることが確認できました!


これで phpize がこけるイライラから解放!
memcached の利用もできたので満足です(笑)


次はPerlからmemcachedを利用してみますか。