最初に
今現在職種の関係上、PHPを扱っているためこれを書こうと思う。自分へのメモ的な物で、ついでに他の人の役にでも立てば御の字。
環境
自分は『PHP5.2.12』、『Apache2.2』、『PostgreSQL 9.1.1』を『WindowsXP』に導入した。
手順
手順の大半を説明してくれている有難いサイトがあったのでとても参考になった。
参考:Windows XPでApache,PHP,PostgreSQL(みズとおかズ)
トラブル解決
連携時のトラブルを解決した記録。
PHPの関数で、データベース(postgreSQL)に接続する関数を記述したソースをブラウザで表示しようとした時にエラーが発生。どうせ構文エラーかスペルミスだろうとコードを確認したが、特に異常なし。どういう事か不明だったので、Web等を利用して調べた。
まず『Apache2.2』のエラーログを確認(C:\Apacheフォルダのパス\logs\error.log)。どうやらPHP側の設定に異常があるらしいと判明。
更にWebを調べていると、どうやら『PHP5.2.10』以降のPostgresライブラリは破損しているとの記事を多く見かけた。そこで『PHP5.2.5』をDL(かなり適当に探して来てしまった為、URL不明)して『php_pdo_pgsql.dll』、『php_pgsql.dll』を入れ替えた。これで大丈夫だろうと安心して実行したが、ダメか。
念のため『php.ini』を確認する。パスは問題ない、読み込むライブラリ関係も『php_pdo.dll』のコメントを解除した。再度実行…まだダメ、ログに同じ文章が。いったい何が原因なのか、文章的にもライブラリ破損の可能性しか考えられない。
更に更にWebをしらべると、PHPマニュアルのリリースページを発見。
そうか、ここでもDLできたのか、という感覚で『PHP5.2.5 Windows binary』をDL。前回同様、『php_pdo_pgsql.dll』、『php_pgsql.dll』を入れ替えて実行。
…動いた!!Apache側のログにも『PHP Warning:』は見当たらない!やっと救われた。破損ライブラリのサイズと正常版のサイズを明記してくれていたサイトのお陰だ。
どうやら原因はライブラリの破損、『php_pdo.dll』のコメント解除忘れだったらしい。最初に試した入れ替えは、サイズこそ正常だが『Apache非対応』の物だったようだ。
あと、この問題を解決する為、多くのサイトを訪れたが、その過程でもPHPの事を知るいい機会になった。…実はこれも問題解決時の楽しみの一つ。環境一つ作るのも、骨が折れるなぁ…。あれ?…よく考えると自分の確認ミス?