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 は記述されてない。
xslttiff もとりあえず使用しないので、外して 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 を設定し、apachehttpd.conf を設定し、apachectl start したら、正しく PHPが動いた。

Leopard になってから、PHP のインストールが凄く手間取った。
64bit になった事が関係あるのだろうか・・・。
因にインストールしたマシンは Intel Mac
似た様な症状に陥った人はいないのかな。。。