MacPorts 1.9.1でPHP 5.2.14のCLIのビルドに失敗する場合の対処法

標準

先日MacPortsで管理しているPHPのバージョンアップを行ったのですが以下のような現象に悩まされました。

$ php -r "print_r('hoge');"
Fatal error: Call to undefined function print_r() in Command line code on line 1

エラーが発生するのはコマンドラインからの利用のみで、なぜかWeb経由では問題なく動きます。

調べて見ると全ての関数が使えない。。

ビルド時のconfigureで以下のエラーが表示されCLI版のバイナリ作成に失敗していました。

Generating files
updating cache ./config.cache
creating ./config.status
creating php5.spec
creating main/build-defs.h
creating scripts/phpize
creating scripts/man1/phpize.1
creating scripts/php-config
creating scripts/man1/php-config.1
creating sapi/cli/php.1
creating main/php_config.h
creating main/internal_functions.c
gawk(96091,0x7fff70a28c20) malloc: *** error for object 0x100214910: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
creating main/internal_functions_cli.c
gawk(96132,0x7fff70a28c20) malloc: *** error for object 0x100215aa0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

対処法は以下のページを参考にして

MacPortsのphp52(@5.2.13_1)で"Call to undefined function in_array()"と出て+pearが入らない件への対処方法(超アドホック) – 富士山は世界遺産
#25231 (php52-5.2.13 error compiling php52 with +pear variant on Snow Leopard Server) – MacPorts

portでconfigureした後、手動でビルド、portでインストールという手順をとりました。

$ sudo port confiure php52 @5.2.14_0+apache2+mysql5+pcntl+postgresql83+sqlite
$ pushd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_php52/work/php-5.2.14
$ sudo `cat config.status | head -7 | tail -1 | sed 's/^#//'`
$ popd
$ sudo port install php52 @5.2.14_0+apache2+mysql5+pcntl+postgresql83+sqlite

なお、macportsのtracには、gawkをアップデートしてからビルドするような手法が書かれていますが当方環境ではダメでした。

コメントを残す

Page optimized by WP Minify WordPress Plugin