Leopard に PHP5.2.6 をインストールする
RC5から長かったですねぇ。ようやくリリースされました。
http://d.hatena.ne.jp/shimooka/20080502/1209723579
PHP5.2.6 がリリースされたので早速 Leopard にインストールした。
下準備として、PHP5.2.5 の環境は残しておきたかったので、libphp5.so を libphp5.2.5.so にしておく。
$ cd /opt/local/apache/modules $ sudo mv libphp5.so libphp5.2.5.so
configure は以下の通り(PHP5.2.5 の時と比べて変わったのが prefix のパスくらい)
'./configure' \ '--prefix=/Library/Programs/PHP5.2.6' \ '--with-apxs2=/opt/local/apache2/bin/apxs' \ '--with-openssl' \ '--with-tidy' \ '--with-zlib-dir=/opt/local' \ '--with-libxml-dir=/opt/local' \ '--with-mysql=/Library/Programs/MySQL5.0' \ '--with-gd' \ '--with-jpeg-dir=/opt/local' \ '--with-png-dir=/opt/local' \ '--with-t1lib=/opt/local' \ '--with-iconv' \ '--with-iconv-dir=/usr' \ '--with-mcrypt=/opt/local' \ '--with-curl=/opt/local' \ '--with-freetype-dir=/opt/local' \ '--with-gettext=/opt/local' \ '--with-xmlrpc' \ '--with-mime-magic' \ '--with-pear' \ '--with-pdo-mysql=/Library/Programs/MySQL5.0' \ '--with-ldap=/usr' \ '--with-kerberos=/usr' \ '--enable-ftp' \ '--enable-calendar' \ '--enable-exif' \ '--enable-zend-multibyte' \ '--enable-mbstring' \ '--enable-mbregex' \ '--enable-sockets' \ '--enable-soap' \ '--enable-zip' \ '--enable-sqlite-utf8' \ '--enable-cli' \ '--disable-xmlreader' \
で、make したら PHP5.2.5 の時と同じように iconv でエラーになった。
Undefined symbols: "_iconv_close", referenced from: _php_iconv_string in iconv.o _php_iconv_string in iconv.o __php_iconv_strlen in iconv.o __php_iconv_strpos in iconv.o __php_iconv_mime_decode in iconv.o __php_iconv_mime_decode in iconv.o __php_iconv_mime_decode in iconv.o _zif_iconv_substr in iconv.o _zif_iconv_substr in iconv.o _php_iconv_stream_filter_dtor in iconv.o _zif_iconv_mime_encode in iconv.o _zif_iconv_mime_encode in iconv.o "_iconv_open", referenced from: _php_iconv_string in iconv.o __php_iconv_strlen in iconv.o __php_iconv_strpos in iconv.o __php_iconv_mime_decode in iconv.o __php_iconv_mime_decode in iconv.o _zif_iconv_substr in iconv.o _zif_iconv_substr in iconv.o _zif_iconv_mime_encode in iconv.o _zif_iconv_mime_encode in iconv.o _php_iconv_stream_filter_factory_create in iconv.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [libs/libphp5.bundle] Error 1
たぶん以前同じように iconv_open と iconv_close をlibiconv_ に変更したら解決するんだろうな〜と思ったけど、
もう一度調査してみたら、以下のフォーラムを見つけた。
http://diymacserver.com/forum/topic/leopard-iconv-and-php5
一番下の marianopeterson さんが、「iconv と openssl で同じ問題起きたけど、shared にしたら、解決したよ!」とあったので、試してみた。
configure の '--with-iconv' \ を '--with-iconv=shared,/usr' \ にし、
'--with-iconv-dir=/usr' \ を削除、make したら、エラーにならず、make が通った。
# ただし、相変わらず php.dSYM という形で実行ファイルが出来たので、php にシンボリックリンクをはった。
iconv を shared extension としたので、php.ini に以下を加えた。
$ sudo vi php.ini extension_dir = /Library/Programs/PHP5.2.6/lib/php/extensions/no-debug-non-zts-20060613/iconv.so extension = iconv.so
ついでに xdebug も 2.0.3 にバージョンアップしてたので、pecl からインストールした。
$ sudo pecl install xdebug $ sudo vi php.ini zend_extension=/Library/Programs/PHP5.2.6/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
phpinfo() で確認したら、iconv も表示されたし、 xdebug もバージョンアップされた。
- -
追記
iconv は結局ダメだった。またしても iconv ではまる - Memo