.phpenvで入れた場合のpeclモジュールの追加方法


以前[virtualbox(centos)でphpenv+php-buildインストールメモ(5.3,5.4変更確認まで)](http://qiita.com/items/7d031440bb174a55a6a1)でphpenvを入れたのだが、peclのコマンドがなかった。
はてそこら辺ってどうやるんだろう？？ということでpeclモジュールの[mongo](http://pecl.php.net/package/mongo)を入れた時のメモ

## 参考にしたサイト

* [複数のphpをインストールしている環境でphpize](http://blog.yymomomomoyy.com/?p=192)

※以降は全てroot権限で実行しています

## peclコマンドがない

peclモジュールを入れるときに便利なpeclコマンドがなかった

```shell
which pecl
```

なかったので[phpize](http://php.net/manual/ja/install.pecl.phpize.php)で入れることにした

```shell
which phpize
/root/.phpenv/shims/phpize
```

## pecl/mongoの取得

peclのサイトで欲しいextensionのダウンロードURLを取得する

```shell:/tmp
cd /tmp
wget http://pecl.php.net/get/mongo-1.3.4.tgz


--2013-02-26 19:44:13--  http://pecl.php.net/get/mongo-1.3.4.tgz
pecl.php.net をDNSに問いあわせています... 76.75.200.106
pecl.php.net|76.75.200.106|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 124844 (122K) [application/octet-stream]
`mongo-1.3.4.tgz' に保存中

100%[===========================================================>] 124,844      102K/s 時間 1.2s    

2013-02-26 19:44:15 (102 KB/s) - `mongo-1.3.4.tgz' へ保存完了 [124844/124844]


#tgzを解凍する
tar zxvf mongo-1.3.4.tgz 
```

##phpizeを使ってコンパイルする

### configureファイルを作成する

```shell:/tmp/mongo-1.3.4
cd /tmp/mongo-1.3.4
phpize 


Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
```

## configure

```shell:/tmp/mongo-1.3.4
./configure
make
#インストールする内容を確認
make test


Build complete.
Don't forget to run 'make test'.


=====================================================================
PHP         : /root/.phpenv/versions/5.4.11/bin/php 
PHP_SAPI    : cli
PHP_VERSION : 5.4.11
ZEND_VERSION: 2.4.0
PHP_OS      : Linux - Linux localhost.localdomain 2.6.32-279.19.1.el6.x86_64 #1 SMP Wed Dec 19 07:05:20 UTC 2012 x86_64
INI actual  : /tmp/mongo-1.3.4/tmp-php.ini
More .INIs  :  
CWD         : /tmp/mongo-1.3.4
Extra dirs  : 
VALGRIND    : Not used
=====================================================================
TIME START 2013-02-26 10:48:37
=====================================================================
No tests were run.

#インストール
make install


Installing shared extensions:     /root/.phpenv/versions/5.4.11/lib/php/extensions/no-debug-non-zts-20100525/
#入った
```

## mongo.iniの追加

上記のコンパイルでextensionが/root/.phpenv/versions/5.4.11/lib/php/extensions/no-debug-non-zts-20100525/に入ってうのがわかったのでiniファイルを追加する

```shell:/root/.phpenv/versions/5.4.11/etc/conf.d/mongo.ini
#新規で作成
vim /root/.phpenv/versions/5.4.11/etc/conf.d/mongo.ini


extension=/root/.phpenv/versions/5.4.11/lib/php/extensions/no-debug-non-zts-20100525/mongo.so
```


## apacheの場合は再起動

いつもどおりで

```shell
/etc/init.d/httpd restart
```

## nginxの場合はphp-fpmをkillしてnginxの再起動

### php-fpmのプロセスを殺す

```shell
ps aux | grep php


root      2331  0.0  0.6 291632  6580 ?        Ss   19:17   0:00 php-fpm: master process (/root/.phpenv/versions/5.4.11/etc/php-fpm.conf)
nobody    2332  0.0  0.9 291788  9308 ?        S    19:17   0:00 php-fpm: pool www
nobody    2333  0.0  0.9 291788  9308 ?        S    19:17   0:00 php-fpm: pool www
root      7932  0.0  0.0 107460   916 pts/0    S+   20:06   0:00 grep php

#プロセスを殺す
kill 2331
```

### nginxの再起動

```shell
/etc/init.d/nginx restart
nginx を停止中:                                            [  OK  ]
nginx を起動中:                                            [  OK  ]
```

後はphpinfo()とかでmongoのモジュールが入っていればOK
以上。