ページ

2013年12月31日火曜日

mac mavericksでpostgresをPHP PDO経由で使う方法

こんにちは、今回は今更ですが自分でMacのmountain lionからmavericksにアップデートしたときに
PHPとPDO経由でpostgresを利用できなくなったのでそちらに対するメモを記載.

ステップは以下のステップになります。
mac内にpostgresのサーバとなります。

1.Xcodeのインストール
2.postgres9.3のインストール
3.pgsqlとpdo_pgsqlのコンパイル
4.PHPのインストールとapacheの設定

このような構成になります。
早速実行


1.Xcodeのインストール


こちらのアプリはApp Storeから「Xcode」と検索を行っていただければダウンロードが行えます。
2G程度の要領が必要ですので注意です。


2.postgres9.3のインストール


まずはこちらからpostgres9.3系をDLします。
インストールは、よくあるもの名での割愛いたします。
通常のインストールなら、「/Library/PostgreSQL/9.3/」こちらに各種コマンド等がインストールされます。



3.pgsql・pdo_pgsqlのコンパイル

こちらからがメインになります。
まずはコンパイルを行うためにPHPのソースをダウンロードします.
以下一連の手順です。後ほど解説.

# brewが使えない場合は以下のコマンドでインストール
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
brew install autoconf
# PHP4.x系だった場合は、パスを修正してください.
curl -O http://museum.php.net/php5/php-`php -v | grep 5. | cut -d " " -f 2`.tar.gz
tar -xzvf php-`php -v | grep 5. | cut -d " " -f 2`.tar.gz 
cd php-`php -v | grep 5. | cut -d " " -f 2`/ext/pgsql/
sudo phpize
# postgresのバージョンにより差があるので各自書き換えてください.
sudo ./configure --with-pgsql=/Library/PostgreSQL/9.3/
sudo make
sudo make install

cd ../pdo_pgsql/
sudo phpize
sudo ./configure --with-pdo-pgsql=/Library/PostgreSQL/9.3/
sudo make
sudo make install

mavericksでは初期では、pdo_pgsqlなどが組み込まれていないため
自分でソースからビルドする流れになっています。
上記が手順となります。

4.PHPのインストールとapacheの設定


インストールしたモジュールなどを読み取るため設定を変更します
sudo sh -c 'cat /etc/php.ini.default | sed -e "s/; extension_dir = \".\/\"/extension_dir=\/usr\/lib\/php\/extensions\/no-debug-non-zts-20100525/g" -e "s/;extension=php_pdo_pgsql.dll/extension=pdo_pgsql.so/g" -e "s/;extension=php_pgsql.dll/extension=pgsql.so/g" > /etc/php.ini'
sudo apachectl restart

こちらでインストールができたはずです。
extension_dirはもしかすると自分でカスタマイズする必要があるかもしれません。


最後に以下のコマンドで動作確認
php -i | grep pgsql
こちらでpgsqlが出てきたら動作できます。