😀
.phpenvで入れた場合のpeclモジュールの追加方法
以前virtualbox(centos)でphpenv+php-buildインストールメモ(5.3,5.4変更確認まで)でphpenvを入れたのだが、peclのコマンドがなかった。
はてそこら辺ってどうやるんだろう??ということでpeclモジュールのmongoを入れた時のメモ
参考にしたサイト
※以降は全てroot権限で実行しています
peclコマンドがない
peclモジュールを入れるときに便利なpeclコマンドがなかった
which pecl
なかったのでphpizeで入れることにした
which phpize
/root/.phpenv/shims/phpize
pecl/mongoの取得
peclのサイトで欲しいextensionのダウンロードURLを取得する
/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ファイルを作成する
/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
/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ファイルを追加する
/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の場合は再起動
いつもどおりで
/etc/init.d/httpd restart
nginxの場合はphp-fpmをkillしてnginxの再起動
php-fpmのプロセスを殺す
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の再起動
/etc/init.d/nginx restart
nginx を停止中: [ OK ]
nginx を起動中: [ OK ]
後はphpinfo()とかでmongoのモジュールが入っていればOK
以上。
Discussion