PHP5.2.5 をインストール
Leopard には最初から PHP5.2.4 がインストールされているが、
Pear のオプションがついていなかったり、色々モジュールが足らなかったりするので、別途インストールした。
ついでに PHP5.2.5 にバージョンアップしているので、最新版をインストールした。
ライブラリのインストール
curl、expat、freetype、gettext、jpeg、libiconv、libmcrypt、libpng、
libxml、libxml2、libxslt、sablotron、t1lib、tiff、zip、zlib を
MacPorts からインストール。
オフィシャルサイトから最新版のソースを取得して、
/opt/local/src に展開。
configure オプション
オプションは id:hetima さんの id:hetima:20071028 のオプションを参考に。
$ sudo ./configure \ '--prefix=/Library/Programs/PHP5' \ '--with-apxs2=/opt/local/apache2/bin/apxs' \ '--with-zlib=/opt/local' \ '--enable-calendar' \ '--enable-exif' \ '--enable-zend-multibyte' \ '--enable-mbstring' \ '--enable-mbregex' \ '--enable-sockets' \ '--with-libxml-dir=/opt/local' \ '--with-mysql=/Library/Programs/MySQL5' \ '--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' \ '--enable-soap' \ '--enable-sqlite-utf8' \ '--with-pdo-mysql=/Library/Programs/MySQL5' \ '--enable-cli' \ '--enable-xslt' '--with-xslt-sablot=/opt/local' '--with-tiff-dir=/opt/local' '--with-expat-dir=/opt/local' '--with-zip=/opt/local'
エラー発生。。。
Notice: Following unknown configure options were used: --enable-xslt --with-xslt-sablot=/opt/local --with-tiff-dir=/opt/local --with-expat-dir=/opt/local --with-zip=/opt/local
どうやら、このオプションはなくなったみたいだ。
zip はデフォルトであるようなので、--enable-zip とした。
xslt、expat は configure の中を見たら記述があるみたいなので、入ると思われるが、
tiff は記述されてない。
xslt も tiff もとりあえず使用しないので、外して configure する。
/opt/local/php-5.2.5/config.nice のなかから、
--enable-xslt --with-xslt-sablot=/opt/local --with-tiff-dir=/opt/local --with-expat-dir=/opt/local
を削除して、$ sudo ./config.nice を実行。
無事に成功。
つづいて、make を行う。
Undefined symbols: "_EVP_CIPHER_CTX_block_size", referenced from: _zif_openssl_seal in openssl.o "_xmlTextReaderSchemaValidate", referenced from: _zim_xmlreader_setSchema in php_xmlreader.o "_xmlTextReaderSetup", referenced from: _zim_xmlreader_XML in php_xmlreader.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [libs/libphp5.bundle] Error 1
make 失敗。。。
xmlreader が悪さしてるのか? --disable-xmlreader として configure、make する
Undefined symbols: "_EVP_CIPHER_CTX_block_size", referenced from: _zif_openssl_seal in openssl.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [libs/libphp5.bundle] Error 1
ググっても何の情報も得られなかった。
どうも openssl が悪さをしているみたい。openssl のパスを Leopard に元から入っている openssl にしても、
MacPorts でインストールした openssl にしてもエラーが発生する。
元から入っている PHP5.2.4 の configure オプションには enable-openssl とかかれている。
検索しても何もヒットしないので、configure オプションから openssl の記述を削除する。
再度、configure、make する。
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: *** [sapi/cli/php] Error 1
この症状は id:hetima さんが日記に記述されていたので、
ext/iconv/iconv.c の iconv_open と iconv_close を libiconv_open と libiconv_close に書き換える。
configure、make が無事に通り、make test をして、make install でインストール終了。
/Library/Programs/PHP5/bin ができたので、
続いて Pear の使用しているパッケージのインストール。
$ sudo ./pear list pear: line 28: /Library/Programs/PHP5/bin/php: No such file or directory pear: line 28: exec: /Library/Programs/PHP5/bin/php: cannot execute: No such file or directory
/Library/Programs/PHP5/bin をみてみると、php の実行ファイル名が
php.dSYM となっていた。dSYM って何だ? ln -s すれば解決するみたいなので、シンボリックリンクをはる。
これで pear コマンドを実行したら、正しく取得できた。
php.ini を設定し、apache の httpd.conf を設定し、apachectl start したら、正しく PHPが動いた。
Leopard になってから、PHP のインストールが凄く手間取った。
64bit になった事が関係あるのだろうか・・・。
因にインストールしたマシンは Intel Mac。
似た様な症状に陥った人はいないのかな。。。