MacのWeb共有のサイトからPHPとPostgreSQLが使えるようにする(1)

動作環境、前提条件

  • Mac OS X 10.6.8
  • PostgreSQL 8.4.10
  • Macに元々入っているWeb共有(apache)とPHPから、下記の方法でエクステンションだけビルドしてPostgreSQLを呼び出せるようにしようとしたが、できなかった。

ソース入手、展開

自分の環境では、現時点でPHP 5.3.15が(Appleから更新されて)入っているので、このバージョンを使用する。
ここからダウンロードする。

$ which php
/usr/bin/php
$ php -v
PHP 5.3.15 (cli) (built: Jul 31 2012 18:42:11) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

ダウンロードしたソースを/usr/localに移動・コピーした後、下記のように展開する。

$ pwd
/usr/local
$ ls php-5.3.15.tar.gz 
php-5.3.15.tar.gz
$ tar xvf php-5.3.15.tar.gz 
        :
        :
x php-5.3.15/LICENSE
x php-5.3.15/README.input_filter
$ 

ビルド

$ cd php-5.3.15/ext/pgsql/
$ phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
$ ./configure --with-pgsql
        :
        :
configure: creating ./config.status
config.status: creating config.h
$ make
/usr/local/php-5.3.15/ext/pgsql/pgsql.c:6241: warning: passing argument 3 of ‘php_addslashes’ from incompatible pointer type
make: *** [pgsql.lo] Error 1
$ 

ビルド失敗。
いろいろ試したが、どうしてもできなかった。
makefileを見てみると、なんかmakefile内の設定が、もともと/usrに入っているphpのものと、/usr/localのものと、ごっちゃになってる。

        :
        :
prefix = /usr
phplibdir = /usr/local/php-5.3.15/ext/pgsql/modules
phpincludedir = /usr/include/php
        :
        :

どうやら、もともと入っているPHPを使うのはあきらめて、PHP全体をソースから作り直したほうがよさそうだ。
次回へ続く。