PostgreSQLまでは良かったんだけれど・・・
そこからが大変でした。
実はDBを「ブン回す」ためのバッチ・プログラムはPHPで作られています。 ところが、OS Xに標準で搭載されているPHPにはPostgreSQLとのインターフェイス部分が組み込まれていませんでした。(コンパイルオプションをチラっと見た限りでは) そこで、対応したPHPを入手する必要があるということになったのですが・・・。
当たり前のように、MacPortsでinstallしようとしたところ、なんと、ソースからコンパイルなんですね。>MacPorts そして、まずはconfigureでエラーですがな。(笑)
その時のエラーの様子がこちら↓。
checking for Apache 1.x module support via DSO through APXS...
Sorry, I was not able to successfully run APXS. Possible reasons:
1. Perl is not installed;
2. Apache was not compiled with DSO support (--enable-module=so);
3. 'apxs' is not in your path. Try to use --with-apxs=/path/to/apxs
The output of /usr/sbin/apxs2 follows
./configure: line 4491: /usr/sbin/apxs2: No such file or directory
configure: error: Aborting
どうもApacheとのインターフェイス部分のオプションがApache2ではなく1系のオプションになっているとのこと。 これは–with-apxs=となっているところを–with-apxs2=とすることで解決しました。 ただ、configureの引数が変更になっているらしく、次のようなエラーが表示されます。
Notice: Following unknown configure options were used:--with-xml
--with-expat-dir=/opt/local
--enable-filepro
--enable-trans-sid
--enable-dbxCheck './configure --help' for available options
まぁ、これは気にしないという手もありますが、私は一応外して再度configureしなおしましたが、多分関係無いです。 ところが、今度はリンクエラーですがな。(笑)
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
エラーはどうも2点で、xmlreaderとopenssl絡み。 とりあえず今回はXMLもSSLも不要(何故ならバッチ処理をコマンドラインで動かせれば良いだけだから)なので、configureの末尾に” –disable-xmlreader”を追加し、” –with-openssl=/opt/local”を外しました。 これで、なんとかmakeも通り一安心。
ただ、実はmake testでコケてました。 サーバに使うのであれば追っかけなければいけないのですが、もう今回はバッチが動けばよい(って何回書いたか・・・)ので、無視! make installしてバッチの動作を確認してOKとしました。
*
ネットで情報を検索してみたところ、どうもApacheもソース持ってきてコンパイルする必要があるっぽいです。 だったら、postgresもソースから持ってきても良かったかも。 だったら、(今回の件に限って言えば)MacPortsいらないじゃん・・・。orz
と言うわけで、どうもあんまりすんなりとは行きませんでした。
*
っていうか、バッチはPerlで書けば良かったよ・・・。