Apache・PHPバージョンアップ

ローカルでのApahce・PHPのバージョンアップを試みることにしました。Apacheは2.0から2.2に、PHPは5.2.3から5.2.5へ移行です。たまたま思い立っただけだったんですが、ほぼ1日をつぶしてしまいました。

今回はApacheもPHPもWindows用のインストーラーを使いました。これで最も痛かったのはPHPとMySQLの接続です。MySQLが読み出せないってエラーが出るのですから(T-T)

Apacheは2.0をアンインストールをしてから2.2をインストールするだけで終了。一度やっているのもあり、PHPとWordPressの本があるため難なく終了。

次にPHPを5.2.3から5.2.5へ。まずはCドライブ直下に入れていたPHP5.2.3をゴミ箱へ。PHP5.2.5をインストーラーを使ってインストール。後はApacheのhttpd.confとPHPのPHP.iniを手動で改変して終わり…にはなりませんでした。

まずPHPをインストーラーでインストールするとデフォルトではC:/Program Files/PHPの下にインストールされます。もちろんPHP.iniもそこに入るのですが、最初はそのフォルダにApacheで動かすために必要なdllファイル・php5apache2_2.dll(今回Apache2.2のため)が全く見あたりません。

なんで??と思いながら再度インストール。どうもインストーラーの途中で聞かれる使用するサーバーソフトを設定してやらないといけないと判明。要はこんな感じです。
PHP5.2.5インストーラー サーバーソフト選択画面

またその後にそのサーバーソフトが入っているフォルダを指定します。
PHP5.2.5インストーラー サーバーソフト設定フォルダ指定

Apacheを指定した場合はインストール後httpd.confの下部に

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/Program Files/PHP/"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

を入れてくれます。
(php5apache2_2.dllなのは今回Apache2.2なので)
…その他は必要に応じて手動で手直ししないといけないんですけど(^-^;

さて、これでinfo.phpを実行してみると無事に動作。じゃぁ、phpMyAdminも動くでしょ…と思うとこれが動かないんですよね……。この時初めて気付くんですよ、PHPフォルダ下に拡張ファイルを納めたフォルダが全くないことを。

どーしてぇ…と思いながら仕方なくPHPのZIPファイルをダウンロードして力業で拡張ファイルをコピー。後はPHP.iniをいじれば…と思っていたら本とかには載っているのにないんですよ、extension=php_mysql.dllが。それどころか
extension=php_mbstring.dllextension=php_gd2.dllも。コメントアウトされて書かれているはずなんですが、記述そのものがなかったんです。

うぅ……と思いつつ再々インストール。このときに気付いたんです、インストーラーの機能を。そう、インストーラーではサーバーソフトの指定以外にPHPの中に何を入れるかを指定してやらないとダメなようです。逆に指定してやらなかったらPHPの最小機能でのインストール、つまり一切拡張モジュール無しの状態でのインストールになってしまうようなのです。

ということでインストールの中でMulti-ByteモジュールとGDモジュール、そしてWordPressには最も重要なMySQLモジュールを指定。

こんな感じで拡張機能を選択できる画面が出てきます。ちなみにデフォルトでは全く何も選択されていません。
PHP5.2.5インストーラー 拡張機能選択画面

で、拡張機能をインストールしたいときは『Extension』の横の+をクリックしてインストールしたい拡張機能のマークを下のようにHDDのマークに替えます。
(これはMySQLの拡張機能をインストールする選択をしたとき)

PHP5.2.5インストーラー MySQL拡張機能選択時
PHP5.2.5インストーラー MySQL拡張機能選択時

これによりPHP.iniの中にも無事これらのモジュールを呼び出す構文が書き込まれました。…でもやっぱりこれも
一部手動で手直ししてやらないといけないんですけどねー(-_-)

そうしてローカルでのバージョンアップは終了。なんとか動くようになりました。

オープンソースのPHPですから必要な拡張機能は人それぞれだとは思うのですが、あまりに説明がなさ過ぎて困りものだと思いました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です