PECL::memcacheインストールしようとしたらphpizeでこけた(泣)
今日はPECLモジュールをインストールする際にphpizeでこけた時の問題と原因を書いておこうと思います。
phpのバージョンは5.2.6
OSはFreeBSD 6.3です。
まず今回の問題が発生した経緯ですが、phpでmemcachedが使いたかったので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"の中身を見てみました
そして$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
を追加して
で確認。
次に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 の利用もできたので満足です(笑)