Mac OS X的PECL格闘記

「PECLが使えねー!」と発狂した記録です。

広告

何はともあれPEARをインストール

cd /usr/lib/php
sudo php install-pear-nozlib.phar
sudo pear channel-update pear.php.net
sudo pecl channel-update pecl.php.net
sudo pear upgrade-all

順調に行ったのはここまで。

コンパイラがない

$ sudo pecl install xdebug
downloading xdebug-2.1.3.tgz ...
Starting to download xdebug-2.1.3.tgz (307,557 bytes)
................................................................done: 307,557 bytes
66 source files, building
running: phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
building in /private/tmp/pear/temp/pear-build-root4omLdZ/xdebug-2.1.3
running: /private/tmp/pear/temp/xdebug/configure
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... no
checking for gcc... no
configure: error: in `/private/tmp/pear/temp/pear-build-root4omLdZ/xdebug-2.1.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
ERROR: `/private/tmp/pear/temp/xdebug/configure' failed

なんかエラー出ました。

$ gcc
-bash: gcc: command not found

gccがないらしいです。

コンパイラが動かない

export PATH=$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin

Xcodeの中の方にあったので、パスを通します。

$ sudo pecl install xdebug
downloading xdebug-2.1.3.tgz ...
Starting to download xdebug-2.1.3.tgz (307,557 bytes)
................................................................done: 307,557 bytes
66 source files, building
running: phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
building in /private/tmp/pear/temp/pear-build-rootyq3mvr/xdebug-2.1.3
running: /private/tmp/pear/temp/xdebug/configure
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... no
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/private/tmp/pear/temp/pear-build-rootyq3mvr/xdebug-2.1.3':
configure: error: C compiler cannot create executables
See `config.log' for more details
ERROR: `/private/tmp/pear/temp/xdebug/configure' failed

「Cコンパイラが動いてない」というエラーが出ました。涙目。

ログを読む

「config.logを読め」と出ていますが、エラー後の終了処理で削除されてしまっています。pecl使わずにインストールしてみてconfig.logを獲得しました。

ld: library not found for -lcrt1.10.6.o
collect2: ld returned 1 exit status

このあたりが怪しいけれど、もうお手上げです・・・。
全然関係ないかもしれないけれど、「10.6」という数字を見て、最近Snow Leopard(10.6)からLion(10.7)に移行したので、それがいけないんじゃないかと思いました。(移行アシスタントが裏目?)

あきらめて最初からやり直し

諦めてxcodeをアンインストールして再インストールすることを決断します。アンインストールスクリプトがどこにあるかわからないので、検索して実行です。

find / -name uninstall*
sudo /Developer/Library/uninstall-developer-folder
sudo rm -rf /Applications/Xcode.app

そしてMac App Storeから再インストール。

設定からCommand Line Toolsなどもインストールします。

$ gcc
i686-apple-darwin11-llvm-gcc-4.2: no input files

これでgccがちゃんと入ります。さっき無駄に通したパスももはや不要です。

3度目の正直

$ sudo pecl install memcached
downloading memcached-2.0.1.tgz ...
Starting to download memcached-2.0.1.tgz (39,088 bytes)
..........done: 39,088 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
ERROR: `phpize' failed

autoconf的なものがないと怒られました。こんなにはまりこんでいるのに、まだ解放されないとは・・・。

最後の一押し

mkdir -p /private/tmp/src
cd /private/tmp/src
curl -O http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9/
sudo ./configure
sudo make
sudo make install
cd ../
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar -zvxf autoconf-2.62.tar.gz
cd autoconf-2.62/
sudo ./configure
sudo make
sudo make install

入れました。

$ sudo pecl install xdebug
downloading xdebug-2.2.0RC1.tgz ...
Starting to download xdebug-2.2.0RC1.tgz (244,336 bytes)
..................................................done: 244,336 bytes
66 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
building in /private/tmp/pear/temp/pear-build-rootROFJ2j/xdebug-2.2.0RC1
running: /private/tmp/pear/temp/xdebug/configure
...(略)...
Build process completed successfully
Installing '/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.2.0RC1
configuration option "php_ini" is not set to php.ini location
You should add "extension=xdebug.so" to php.ini

通った!(ここまで6時間くらい)
あとはphp.iniに設定を追加して再起動して終わりです。

sudo vim /etc/php.ini
sudo /usr/sbin/apachectl restart

またいつかはまりそうな気がするので、メモです。綺麗な状態からならXcodeインストールするだけで普通にできるという話ですが・・・。

コメント

タイトルとURLをコピーしました