本ブログは2009年4月21日で終了しました。
今後はアイビースターでブログを運営していますので
そちらをご覧ください。
Posted by Hibi at 08:00


昨日、Windows上でApache+PHP+PostgreSQLの環境を構築しようとしたら大はまりしました。(T_T)

今日はその時にはまった理由を覚書という意味で下記に明記しておこうと思います。

もしかしたら、同じような状況に会う人もいるかも知らないし、3歩、歩くと忘れてしまう自分が同じことにならない為にも(^_^;)

今回、Windows XP上にWebサーバのApache2を構築し、データベースソフトにPostgreSQL 8.3。スクリプトソフトにPHP 5の環境を作る必要がありました。

まずは、Apache 2をインストールしようということで、最新バージョンの2.2.8のバイナリファイルをダウンロード&インストール。この作業は特に問題なくインストール完了。動作も確認できました。

次に、PHPをインストール。

PHPも最新のPHP 5.2.6を使用。ファイルはインストーラー付きの「PHP 5.2.6 installer」をダウンロードしました。いつもならZipファイルで手動インストールをするのに、なぜか今回はインストール付きのファイルを使用。今思えばここからが大はまりのスタートだったような気がします。

ダウンロードが完了して、インストール作業も(確か)特に問題なく完了しました。

PHPの動作を確認するため、コマンドプロンプト上でPHPのバージョンを確認する
> php -v
を実行すると

PHP Warning: PHP Startup: Unable to load dynamic
library 'c:\php\ext\php_oci8.dll'
- 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_pdo.dll'
- 指定されたモジュールが見つかりません。
in Unknown on line 0
   :
   :
と、モジュールが見つからないとのメッセージが多数発生!

PHPのインストール時に欲張ってモジュールを全てインストールしたのが失敗かな?と思い、一度、PHPをアンインストール。再度、インストール時に必要なモジュールを選択してインストールを実行。インストール後にPHPのバージョンを確認してみると、またもや同じようなメッセージが。

インストーラ付きのPHPが良くないのかな?と思って再度、PHPをアンインストールし、今度はZip形式のPHP「PHP 5.2.6 zip package」をダウンロード。

Zip形式のPHPは自分でiniファイルやApacheへの設定が必要になり、少々面倒。しかし、そんなことも言ってられないので、Web上で設定内容を確認しながらPHPのインストールを完了。そして、PHPのバージョンを確認してみると

 「モジュールが見つかりません・・・」(←面倒なので簡略化)

のメッセージがΣ(゚Д゚)ガーン

php.iniの「extension_dir」の設定が悪いのかと思い、いろいろ書き直すも全然直りません。Web上で調べると、各Dllファイルを「C:\WINDOWS\system32\」へ移動すると上手くいく場合がある。と書いてあるところもあったので、試しに1つのファイルだけを移動してみても結果は同じ。orz

その後、いろいろといじってみましたが、全然改善されることはありませんでした。

どうしようか・・・と思っているときに、もしかしたらPHPのバージョン問題か?と、思い、PHP 5.2.6から一つ前のPHP 5.2.5のZipファイルをダウンロードし、設定してみたところ・・・
見事成功!\(*^O^*)/
念のため、
> php -m
を実行してモジュールの確認。問題ありません。

本当にPHPのバージョン問題なのかはよくわかりませんが、とりあえずはこれで一安心。

しかし、問題はこれだけではありませんでした・・・(u_u;)

次にApacheにPHPの設定をし
<?php phpinfo(); ?>
でPHPの動作、設定を確認するとPHPは動いていますが、肝心のPHPのモジュールが読み込めていません。

そこで、今度はApacheのhttpd.confファイルをいろいろいじってみて確認してみるもNG。

そして、長い時間設定を変更してみてやっとこさ見つけました。それはhttpd.confに書いたPHPの設定
PHPIniDir "C:\php"
でした。PHPIniDirはphp.iniファイルのあるディレクトリを書くべきところをphp.exeのあるディレクトリとしていました。この部分を
PHPIniDir "C:\WINDOWS"
にすることで無事完了。

文章で書くとたいした長さではありませんが、これらの問題を見つけるのには非常に長い時間が掛かってしまいました(^_^;)

けど、プログラムでも何でも自分の思ったとおりの動作をしたときは、これらの苦労を忘れて本当に嬉しものです。だからプログラムの仕事がやめられません。(今回は少々異なりますが・・・)

タグ :ApachePHP

    同じカテゴリー(PHP)の記事
     
    Category is PHP.
    <%PingExcerpt%>
    <%PingBlogName%> at <%PingDateTime%>
    おはようございます。

    お疲れ様でした。
    内容は、正直ほとんど分からないながら、臨場感溢れるリポートです(笑)笑い事では無いんでしょうが、Hibiさんの名文が読ませますネ。何はともあれ達成感にバンザイ(^o^)/

    さあ、こちらもGW明けの苛酷な戦いの幕開けダァーッ!
    Posted by Yamamoto at 2008年05月07日 08:56
    これだからWindowsはダ(略

    WAPPってパッケージでは出てないんでしたっけ?
    Posted by ルーパスさいとう at 2008年05月07日 10:28
    あ、マジメにコメントしよう(笑

    私的には、プログラミングはパズルと一緒だと思っています。

    ま、喜びを感じられるうちはまだ良いんですが・・・(以下検閲
    Posted by ルーパスさいとう at 2008年05月07日 16:02
    Yamamotoさん

    コメントありがとうございます。

    いや~大変でした
    確かにその時は笑い事ではないのですが、今となっては大笑いです(^^)
    そして、いい勉強にはなりましたね。
    苦労してこそ得る知識です。

    ルーパスさいとうさん

    ダブルコメントありがとうございます。

    > これだからWindowsはダ(略

    Windowsが問題なのか、Windows用のPHPが問題なのかはよくわかりませんが
    WAPPでも良かったのですが、ここまで来ると最後まで、と思ってがんばってしまいました。

    > ま、喜びを感じられるうちはまだ良いんですが・・・

    (笑)少なくとも私はまだ喜びを感じていますよ。
    ルーパスさいとうさんはもしかしたら苦労の方が大きいのかも
    喜びを大きくするのではなく、苦労を小さくしてみてはいかがでしょう
    中々難しいですが(^^;)
    Posted by HibiHibi at 2008年05月08日 06:17
    苦労、一緒に感じてみないかっ!(さわやかに。あくまでも、さわやかに)
    Posted by そほ3 at 2008年05月11日 00:43
    苦労は買ってでもするものと聞いたことがありますが

    > 苦労、一緒に感じてみないかっ!

    その苦労は何か嫌な匂いがする(笑)
    Posted by HibiHibi at 2008年05月12日 08:54
    削除
    Apache+PHPの環境構築で一苦労!
      アイコン(絵文字)の挿入 スタンプ(絵文字)の挿入