« AIXでLoad Averageを調べる方法 | トップページ | SH-05G(DoCoMo7インチタブ) ろーどてすと »

2015.07.25

Windows版PHPでPDOを有効にする

むかーしCakePHPを触ったときに、Windows版PHPのインストーラオプションを気をつけないとPDOがインストールされず残念な目に遭うということを書いたことがあるけども、またしてもPDOでちょっとはまったお話。

本稿時点でのPHPの最新版は5.6であるが、こちらのWindowsバイナリはApache同様、インストーラが提供されなくなっており、特定ディレクトリに自分で展開すれば良いのである意味では楽なものとなった。
これでPDOのインストール忘れはないぜ、と思っていたのだが2点罠にはまった。。。

1.php.ini
 昔のバージョンではphp.exeフォルダ内にはphp.iniがあり、デフォルトでこちらを使っていたわけだが、現在は当該フォルダにはphp.ini-developmentとphp.ini-productionという複数環境用のサンプルINIだけが存在している。
そこで単純にコピー&リネームでphp.iniを設定しそこにいろいろと記述をしたのだが、いろいろと有効にならない。
 phpinfo()を使って調べてみると、なんとC:\Windows\php.iniを参照しているという。
 こちらを使用してもいいのだが、できればc:\php\php.iniを使いたいところ。
 このためにはApacheを利用している場合はhttp.conf内にphpのディレクティブを記載しておく必要があったのだった。

PHPIniDir "c:/php"
とまあこれを1行足すだけのことである。

2.エクステンションディレクトリ指定
 続いてPDOを有効にするためにはphp.ini内で使用するDBMS用のPDO DLLを有効にする必要がある。
 相変わらずのpostgreSQL使いなので

extension=php_pdo_pgsql.dll
こちらの行をコメントアウト状態からアクティベイトする。ロードするモジュールはextensionディレクトリにいる必要があるのでそちらをチェック。
 うむ、ちゃんと c:\php\extにphp_pdo_pgsql.dllは存在している。
 exteision_dirを見れば
On windows:
extension_dir = "ext"
うん、大丈夫。

……ところがこれだと動かないのである。
extensionディレクトリの指定は相対パスでもOKという理解だったのだが、こちらを絶対パスにしておかないと、少なくとも私の環境(Windows7 64bit/Apache2.4/PHP5.6.7)ではうまく拡張モジュールをロードしてくれなかった・
このため

On windows:
extension_dir = "c:\php\ext"
というのが現在の私の環境での設定値となっている。

|

« AIXでLoad Averageを調べる方法 | トップページ | SH-05G(DoCoMo7インチタブ) ろーどてすと »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2022/61954335

この記事へのトラックバック一覧です: Windows版PHPでPDOを有効にする:

« AIXでLoad Averageを調べる方法 | トップページ | SH-05G(DoCoMo7インチタブ) ろーどてすと »