phpenvで作ったphp環境にpeclのライブラリをインストールする
phpenvでつくったphpの環境にpeclのライブラリをインストールした時のメモ。
pearのライブラリなんかはcomposerでプロジェクトローカルにインストールしてしまうんだけど、peclってsystem php?な環境にpeclコマンドでpecl install hogehoge
みたいにインストールしたことしかないし、peclコマンド自体みつからなかったので、そういえばphpenvで作った環境毎にインストールする時ってどうやるんだろうかと思ってしらべた。
結論phpizeでビルドする
。らしい。
Memcachedでもいれてみる
僕の中ではメジャーなMemcachedモジュールを入れてみる。
http://pecl.php.net/package/memcached
※わけあってbeta版を入れる。
$ cd /tmp # 適当なディレクトリにダウンロード $ wget http://pecl.php.net/get/memcached-2.2.0b1.tgz # 解凍 $ tar zxvf memcached-2.2.0b1.tgz $ cd memcached-2.2.0b1 # phpizeを使う $ phpize # ビルドする $ ./configure $ make $ make install Installing shared extensions: $HOME/.phpenv/versions/5.5.8/lib/php/extensions/no-debug-non-zts-20121212/
これでホームディレクトリ以下のphpenvの環境にmemcached.so
というファイルを作ってくれる。
$ ls $HOME/.phpenv/versions/5.5.8/lib/php/extensions/no-debug-non-zts-20121212/ ... memcached.so ...
ただ、これだけだと使えないので、php.iniで読み込んであげる必要があるけど、php.iniに書くものアレなので$HOME/.phpenv/versions/5.5.8/etc/conf.d/
にmemcached.ini
というファイルを作って読み込ませるようにする。
ファイルの内容は
$ cat $HOME/.phpenv/versions/5.5.8/etc/conf.d/memcached.ini extension=memcached.so
これだけ。
あとはphp -i
で確認
$ php -i | grep memcached Additional .ini files parsed => $HOME/.phpenv/versions/5.5.8/etc/conf.d/memcached.ini, memcached memcached support => enabled libmemcached version => 1.0.17 memcached.compression_factor => 1.3 => 1.3 memcached.compression_threshold => 2000 => 2000 memcached.compression_type => fastlz => fastlz memcached.serializer => php => php memcached.sess_binary => 0 => 0 memcached.sess_connect_timeout => 1000 => 1000 memcached.sess_consistent_hash => 0 => 0 memcached.sess_lock_expire => 0 => 0 memcached.sess_lock_max_wait => 0 => 0 memcached.sess_lock_wait => 150000 => 150000 memcached.sess_locking => 1 => 1 memcached.sess_number_of_replicas => 0 => 0 memcached.sess_prefix => memc.sess.key. => memc.sess.key. memcached.sess_randomize_replica_read => 0 => 0 memcached.sess_remove_failed => 0 => 0 memcached.sess_sasl_password => no value => no value memcached.sess_sasl_username => no value => no value memcached.store_retry_count => 2 => 2 memcached.use_sasl => 0 => 0 Registered save handlers => files user memcached
なんかいろいろ設定されたみたい。