あらきけいすけの雑記帳

このページの内容が正しいとは限りません。なるべくミスらないよう、がんばるけど。過去の記事もまちがい等に気がついた時点で書き換えていきます。図版の一部は外部へのリンクなので、その図版サーバが落ちていたらゴメンナサイ。
検索エンジンで調べてたどり着いた人へ:上の「検索」で日記内の検索をかけてみるか、記事一覧を見てください。書いて欲しい項目のリクエストがあれば、コメント欄に書いて下さい(ただし高校数学程度の範囲内でね)。なるべく答えてみようと思います。

2006-06-11 (Sun)

[] インストール関連メモ(WindowsXP/Apache2.2.2/PHP5.1.4/MySQL5.0.22)

[2007.6.4追記]WindowsXP/Apache2.2.x/PHP5.2.xはインストールの方法がPHP5.1.xからかなり変わっています。OS名+Apache[バージョン名]+PHP[バージョン名]で検索されることをお勧めします。Windows Apache2.2 PHP5.2 - Google Search例えばここ→Windows 環境への Apache 2.2.4 + PHP 5.2.0 導入(インストール)記録 :: ソフトウェア :: Pocketstudio’z logとか。


インストール方法から書いてあるので買った

  • Apacheは窓の杜 - Apache HTTP Serverの「作者サイトからDOWNLOAD」をクリックするといきなりwin32用のバイナリのアーカイブに飛ぶ。apache_2.2.2-win32-x86-no_ssl.msiをダウンロードしインストールした。

    Apache HTTP サーバ バージョン 2.2ドキュメント - Apache HTTP サーバ

  • p.25「4 DocumentRootを設定する」
    この本はデフォルト値を使って話を進めている。変更する場合、書き換える場所は2箇所:(1)DocumentRootパラメータ, (2)DocumentRootのディレクトリに対するディレクティブ。cf.Apache windows ?h?L???????g???[?g ?ύX - Google ????
  • p.25「5 AllowOverrideを設定する」
    ドキュメントルートのディレクティブに対するものをAllに変更した。ローカルだからいいでしょう。
  • p.26「7 言語関係を設定する」など
    右側サンプルに「Linux:$n行目」とのみあるのでLinuxのみなのだろう。タイトルの直下に[Linux][Linux/Windows]などの区別が表示してあるとうれしい。
  • [6.18]p.26「7 言語関係を設定する」
    LanguagePriority パラメータは Apache 2.2.2 では ./conf/extra/httpd-languages.conf ファイルの中にある。httpd.conf でこのファイルを有効にするには

    #Include conf/extra/httpd-languages.conf

    コメントを外す
  • Apache2.2 とPHPの php5apache2.dll について
    PHP5は php-5.1.4-Win32.zip (04 May 2006)を展開したものをそのまま使った。(PHPインストーラは使っていない)
    • http.conf を書き換えて再起動をしようとすると "The requested operation has failed!" という表示が出て起動できない。原因が httpd.conf の
      LoadModule php5_module C:/usr/php/php5apache2.dll
      の記述にあることは消去法で確かめた。
    • ウェブで探るとPHP5の php5apache2.dll は Apache2.2 では動作しないようだ(参考:http://www.google.co.jp/search?hl=ja&q=LoadModule+php5_module+php5apache2.dll&lr=)。
      [蛇足]http://www.google.co.jp/search?hl=ja&q=Apache+LoadModule+php5+The+requested+operation+has+failed!&lr=したがこの情報に簡単に辿り着かなかった。検索ってムズカシイネ。
    • Apache Win32 binaries and modules download でApache2.2用の php5apache2.dll-php5.1.x.zip をダウンロードし、Readmeに従って2個のファイルを各々、指示されたディレクトリにコピーした。(この時点で試しにApacheを再起動するも同じエラーでこける。)
    • そのReadmeを読むと3番目の作業として「Visual C++ 2005 再頒布可能パッケージ(ダウンロード)」が必要とのこと(「.NET Framework Version 2.0 再頒布可能パッケージ(ダウンロード)」があれば不要とのこと)。 NET Framework Version 2.0 再頒布可能パッケージをダウンロードしてインストールした。
    • 今度は再起動時にエラー表示が出なかった。PHPコマンドの <?php phpinfo(); ?> を書いた文書を呼び出すときちんと情報がでた。 [蛇足]上記本にあったソース <? phpinfo(); ?> では動作しなかった。[6.12]p.35に"<? ?>"や"<% %>"を使えるかどうかはphp.iniの設定によることが書いてあった。
    これでPHPが動作する環境が出来たということなのでしょう。
    [8.3]Windows2000でも同じ事をやったら動いた。
  • 再起動すると勝手に立ち上がっていたので、[スタート]->[コントロールパネル]->[管理ツール]->[サービス]で Apache2.2 の設定を「自動」から「手動」切り替えた。
  • MySQL5.0.22の入手:MySQL :: Download MySQL Community Server
  • MySQLのインストール(section 55, p.188-)「5 設定を完了する」の次でWindowsXPでは「ポート3306/TCPが開いていないのでファイアウォールで3306/TCPを開けてretryしてくれ」という趣旨のエラー表示がでる。
    • これは上記本のMySQLの設定方法のページ p.188 sect.55 には記述が無かった。
    • このエラー表示をそのままにして、ファイアウォールで3306/TCPを開けたのちに、エラー表示下部の[retry]ボタンを押す。すると「コンフィギュレーションが上手くいった」という趣旨の表示がインストーラの画面に表示され、コンフィギュレーションウィザードが終了する。
    • ここで[retry]の隣の[skip]をやると設定が途中でコケてにっちもさっちもいかなくなる。(一旦アンインストールして、ディレクトリをバッサリ消して、再インストールする方が早そう。)
    • 壁に穴を開ける手順:[スタート]->[コントロールパネル]->[Windows ファイアウォール]->[例外]->[ポートの追加]->[名前:MySQL][ポート番号:3306][TCP]


    穴のあけ方:WindowsXPでMySQLを設定するときにConnection Errorが出る。

  • この辺で一旦Apache2.2をアンインストールしてApache2.0を入れた。というのもソフト同士の連携のツボがわからないので、ウェブとか本とかに記述のある環境にワザと揃えておいて、動作する状況をきちんと押さえておきたいと思ったから。

  • [6.12]HTMLにPHPスクリプトを埋めて動かない。なぜじゃ。[6.12later]httpd.conf に AddType application/x-httpd-php .php .html で動作した。[6.18]ただし、これをやると.htmlファイルが全て一旦php5を経由するので、そのステップでSJISをEUCとして読んだせいで文字化けしてしまったソースをそのまんまSJISソースとして吐き出してしまう。画面が?で埋まってしまうか何も書かない。.htmlを指定から外す

    [この発見に至る経緯]「素の」httpd.confから再出発してphpの導入で化け始めることを確認した。

  • [6.15]MySQLを一旦アンインストールして再インストールするときは、MySQLディレクトリを消しておかないと「以前の記憶」が残るらしい。それから3306ポートを事前に開けておいても config wizard で「開いてない」というエラー表示が出た。ポートを消して作り直すと通った。
  • [6.15] [PHP5.1.4からMySQL5.0.22を召喚するこびとさん]
    MySQL :: のページから mysql 関数用の php_5.1.4_mysqli_5.0.22-win32.zip と mysqli 関数用の php_5.1.4_mysql_5.0.22-win32.zip を持ってきて入れた。

    [8.3]Windows2000の環境にインストールするときは、このコネクターを使う必要はないようだ。



    ApacheとPHPといい、PHP5とMySQLといい、この辺の各ソフト本体のバージョンアップに伴う他のソフトとの連携をきちんととるためにバイナリを探して引っ張ってこないといけないというのは、ビギナーには辛いものがあると思う。他にもインストール中にMySQL用にWindowsXPのファイアウォールに穴を開けないといけないことが分かるとか。

  • [PHP5.1.4からのMySQL5.0.22の召喚に苦戦する]
    [6.15:研究日記より抜粋]
    PHP5からMySQLが呼び出せぬ。
    Fatal error: Call to undefined function mysql_connect() in (ぴー).html on line 3
    なぜじゃ? libmysql.dllはsystem32に入れた。 php.iniのextension=php_mysql.dllはコメントアウトを外した。 なんかコアな受け渡しの部分で「マニュアル本」どおりに行かないのは苦しいな。 http://dev.mysql.com/downloads/connector/php/ というページを見つけた。 バイナリを入れるも上手く動かず。
    [6.17] phpinfo()の出力を見ると mysql のセクションがない(上記本p.210 sect.63にはそういう部分があると書いてあるのに…)。レンタルサーバー|Joe'sウェブホスティング画像を見るとlibxmlの次にある。phpinfo()のConfigurationセクション(辞書式順で項目が並んでいる)のlibxmlセクションの次がodbcになっている。php.iniのextension=が効いていないのかな。
    [6.17]httpd.conf に書いていた PHPIniDir に正しい php.ini のディレクトリ名を記述したら上手く走るようになった(こんなのいつ書いたかなあ?[add]Apache2.2のphp5apache2.dll関連の修正をしたときだ)。 httpd.conf での指定が優先するのかな。でも phpinfo() の最初のテーブル内には Configuration File (php.ini) Path が PHPIniDir の指定したディレクトリではなく c:\windows を表示している。なぜじゃ。phpinfo() の libxml セクションの次に mbstring セクションと mysql セクションが表示されるようになった。
  • [6.17]PHP: Overview of the MySQL PHP drivers - Manual

  • [6.17]Apache2.0をアンインストールしてApache2.2をインストールした。phpinfo()とmysql_connect()が動いたので多分大丈夫だろう。

サーティ・デイズサーティ・デイズ 2006/07/06 02:47 とても助かりました。感謝、感謝。

milneimilnei 2006/07/16 22:06 二日間悩み、諦めかけていましたが、「Apache2.2 とPHPの php5apache2.dll について」を参照し、おかげで問題解決しました。有難うございました。

rikarika 2006/07/31 00:48 同じくphp5apache2.dllのところでつまっていました。
きっとここで悩んでるビギナーがたくさんいるでしょうね^^;
有難うございました。

(=゜Д゜=))(=゜Д゜=)) 2006/09/18 20:01 今日、Apacheを2.2.3を導入してphp5apache2.dllでエラーになり悩んでました。この記事が2ヶ月前ということはずっと解決されてないということですね。。。ありがとうございました。

kskksk 2006/10/21 17:14 今日PHPを始めた初心者です。
php5apache2.dllの解説非常に助かりました。謝々

ユータユータ 2006/10/23 23:13 php5apache2.dll について半日悩み続け、このページにきました。ほんっとイライラしているときに事細かく書いてあるこのページを見て簡単に解決してしまいました。本当にありがとうございました!!

selvaselva 2007/02/27 00:18 This Requested operation has failed で検索させてもらいました。
ここのおかげで、無事導入できそうです。

makimaki 2007/06/03 23:25 PHPの設定を行っていて、php5apache2.dllの設定でイキナリつまずいていました。。。
とってもとってもとっても助かりました。
どうもありがとうございました!!

arakik10arakik10 2007/06/04 18:33 ここをご覧になったみなさま、いまいちど、お手元の OS, Apache, PHP, MySQL のバージョン等をご確認ください。M$ Windows+PHP5.2.xはインストーラがあったり、Apache2.2.xとの連携が良くなったりしています。

tarkutarku 2008/10/23 16:37 おなじphpIniDirで引っかかっていました。php.iniは所定の位置だとおもっていたのが
参考にしたサイトが他の場所だったらしく、所定のパスに書き換えて見事解決^^ありがとうございました!