MacOSX 10.5(Leopard)上にPHP5.2(5.2.6または5.2.8)を入れるさいにはまったことをメモ
libiconvのリンクに失敗する。
コンフィギュ時に「--with-iconv」オプションを指定して、libiconvを含める指定をしたがリンク時にシンボル解決できずエラーになりました。
それで、こちらであったように[--with-iconv=shared,/usr]というようにsharedにすればOK。
postgreSQLに一部が使えない。
symfony+postgreSQLという組み合わせのアプリケーションを実行すると、データベース関連でこけている様子。デバッグして調べると「pg_escape_string」や「pg_affected_rows」などの関数がないということでエラーが発生していました。
それでPHPのソースのうち「ext/pgsql.c」を調べてみる。定数値によりコンパイル分岐をしていたので、上記の関数がコンパイルされるよう以下のように定数を定義してから再構築。
これでとりあえず、アプリケーションが動くようになっているよう。
#define HAVE_PQCMDTUPLES 1 #define HAVE_PQESCAPE 1
それで結局構築は
それで、結局は以下のようなコンフィギュとメイクを行いました。
apache,postgresql,mysqlがIntelの64ビットで動作しているので、64ビットで構築するるための環境変数境定を最初にしています。
$export CFLAGS="-arch x86_64" $export CXXFLAGS="-arch x86_64" $export LDFLAGS="-arch x86_64" $./configure --with-prefix=/usr/local \ --with-apxs2 \ --with-mysql=/usr/local/mysql \ --with-pgsql=/usr/local/pgsql \ --with-pdo-mysql=/usr/local/mysql \ --with-pdo-pgsql=/usr/local/pgsql \ --with-config-file-path=/etc \ --enable-sockets --enable-zend_multibyte \ --mandir=/usr/shared/man \ --infodir=/usr/shared/info \ --enable-cli \ --with-zlib-dir=/usr \ --with-kerberos=/usr \ --enable-mbstring \ --with-ldap=/usr \ --with-ldap=/usr \ --with-openssl=/usr \ --enable-exif \ --enable-ftp \ --sysconfdir=/private/etc \ --with-mysql-sock=/tmp/mysql.sock \ --with-zlib \ --with-iconv=shared,/usr $make $make install