Mac OS X Lionにpecl aopをインストールする
pecl aopとは何ぞや
http://www.slideshare.net/hinakano/peclaop
自分のMacのPHPで試してみようと思いましたので、先ずはpeclのインストールから
[prompt]$ cd /usr/lib/php [prompt]$ sudo php install-pear-nozlib.phar No log handling enabled - using stderr logging Created directory: /var/db/net-snmp (中略) Wrote PEAR system config file at: /private/etc/pear.conf You may want to add: /usr/lib/php/pear to your php.ini include_path
[prompt]$ sudo php /usr/lib/php/pear/pearcmd.php channel-update pear.php.net Updating channel "pear.php.net" Channel "pear.php.net" is up to date [prompt]$ sudo php /usr/lib/php/pear/peclcmd.php channel-update pecl.php.net Updating channel "pecl.php.net" Channel "pecl.php.net" is up to date [prompt]$ sudo php /usr/lib/php/pear/pearcmd.php upgrade-all (中略) upgrade-all ok: channel://pear.php.net/Archive_Tar-1.3.10 upgrade-all ok: channel://pear.php.net/Console_Getopt-1.3.1
以上でpeclのインストールはおk
ここからaopのインストール
現状、安定版が無いのでbetaを
[prompt]$ sudo php /usr/lib/php/pear/peclcmd.php install aop-beta downloading AOP-0.2.2b1.tgz ... Starting to download AOP-0.2.2b1.tgz (2,855,061 bytes) (中略) ERROR: `phpize' failed
phpize が無いと言われました。
phpizeを入れるために、autoconfをインストール
[prompt]$ sudo port install autoconf ---> Computing dependencies for autoconf ---> Dependencies to be installed: help2man p5.12-locale-gettext m4 (中略) ---> Cleaning autoconf ---> Updating database of binaries: 100.0% ---> Scanning binaries for linking errors: 100.0% ---> No broken files found.
これでphpizeが入ったはずなので再チャレンジ
[prompt]$ sudo php /usr/lib/php/pear/peclcmd.php install aop-beta downloading AOP-0.2.2b1.tgz ... Starting to download AOP-0.2.2b1.tgz (2,855,061 bytes) (中略) cc -I. -I/private/tmp/pear/temp/AOP -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-rootrtXWNk/AOP-0.2.2b1/include -I/private/tmp/pear/temp/pear-build-rootrtXWNk/AOP-0.2.2b1/main -I/private/tmp/pear/temp/AOP -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/AOP/aop.c -fno-common -DPIC -o .libs/aop.o In file included from /private/tmp/pear/temp/AOP/aop.c:24: /usr/include/php/ext/pcre/php_pcre.h:29:10: fatal error: 'pcre.h' file not found #include "pcre.h" ^ 1 error generated. make: *** [aop.lo] Error 1 ERROR: `make' failed
pcre.hが無いと言うので、MacPortsでpcreをインストール
[prompt]$ sudo port install pcre ---> Computing dependencies for pcre (中略) ---> Cleaning pcre ---> Updating database of binaries: 100.0% ---> Scanning binaries for linking errors: 100.0% ---> No broken files found.
pcre inside どや?
[prompt]$ sudo php /usr/lib/php/pear/peclcmd.php install aop-beta downloading AOP-0.2.2b1.tgz ... Starting to download AOP-0.2.2b1.tgz (2,855,061 bytes) (中略) cc -I. -I/private/tmp/pear/temp/AOP -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-rootGr7VPd/AOP-0.2.2b1/include -I/private/tmp/pear/temp/pear-build-rootGr7VPd/AOP-0.2.2b1/main -I/private/tmp/pear/temp/AOP -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/AOP/aop.c -fno-common -DPIC -o .libs/aop.o In file included from /private/tmp/pear/temp/AOP/aop.c:24: /usr/include/php/ext/pcre/php_pcre.h:29:10: fatal error: 'pcre.h' file not found #include "pcre.h" ^ 1 error generated. make: *** [aop.lo] Error 1 ERROR: `make' failed
が・・・・だめ・・・・
pcre.hにパスが通ってないのね・・・
パスの通ってそうな場所にコピーして、N度目の正直チャレンジ
[prompt]$sudo cp /opt/local/include/pcre.h /usr/local/include/ [Prompt]$ sudo pecl install aop-beta downloading AOP-0.2.2b1.tgz ... Starting to download AOP-0.2.2b1.tgz (2,855,061 bytes) (中略) 4 source files, building (中略) Build complete. Don't forget to run 'make test'. (中略) Build process completed successfully Installing '/usr/lib/php/extensions/no-debug-non-zts-20090626/aop.so' install ok: channel://pecl.php.net/AOP-0.2.2b1 configuration option "php_ini" is not set to php.ini location You should add "extension=aop.so" to php.ini
ようやくビルドできました
続いてphp.iniの編集
[prompt]$ php --ini Loaded Configuration File: /private/etc/php.ini [prompt]$ sudo cp /private/etc/php.ini.default /private/etc/php.ini [prompt]$ sudo chmod u+w /private/etc/php.ini [prompt]$ sudo echo extension=aop.so >> /private/etc/php.ini [prompt]$ php -i
/private/etc/php.ini を編集すれば良い模様。
ただ、そのファイルが無かったのでデフォルトからコピーして作成した。
/private/etc/php.ini.defaultをコピーすると -r--r--r--で作成されるので、
chmodして-rw-r--r--にする。
aopをロードする一文を追加し、最後に php -i でaopが使用可であることを確認