Windows上に開発環境を作る
現場では意外に、すべての開発をサーバ上で開発する人が多い。毎度毎度書く>アップロード>ブラウザでチェック、というサイクルを回すのはわりと大変なので、私はクライアント(ありがちなWindowsXPマシン)に環境を作ってしまうことが多い。
今更感満点の内容だが、ローカルにも開発環境を整えるといいよ!という啓蒙も含めてエントリしてみる。
apacheとPHPをそれぞれ個別にインストールしても一向に構わないが、XAMPPを使ってラクをしても一向に構わない。最新バージョンへの追随は若干遅れるが、一発でインストールというラクさは一度経験するとなかなか手放しがたい。
ただし、PHP5.2.6とPostgreSQLについてはこんな不具合があるので注意。PostgreSQLを使うなら(なんとなく釈然としないが)PHP5.2.5の含まれた「XAMPP Windows 1.6.6a」を使うといいかもしれない。XAMPPの旧バージョンはここから入手できる。最近のリリースノートはここに残っていた。
XAMPPは素晴らしいことに、PHPのバージョンをbatch一発で切り替えられる。
…のだが、php.iniについての説明はされていない。意外とハマるポイントなのでまとめておく。
PHP5用php.ini [php5safety]xampp\php5.ini PHP4用php.ini [php4safety]xampp\php4\php4.ini apacheのモジュールとして動くときのphp.ini [phpcurrent]xampp\apache\bin\php.ini
switch-php.batによるphp.iniの動き(4 -> 5)
copy [phpcurrent] [php5safety] copy [php4safety] [phpcurrent]
5->4のときは **[php4safety]と[php5safety]**が逆になる。詳細はxampp\install\php-switch.phpを参照のこと。
上記挙動を踏まえて。
php.iniをいろいろ編集して挙動を確認する場合、**[phpcurrent]を編集>apacheをリスタート>挙動を確認、という流れになる。一通り修正が終わって納得のphp.iniができ、そのあとphp-switchを動かすとどうなるだろう。…当然[phpcurrent]は[php4safety]**で上書きされてしまう。ぎゃー!
これを防ぐために、[phpcurrent]を修正したら[php5safety](もしくは**[php4safety]**)にコピーする、という作業が必要になる。なにかスクリプト(コピーしてapacheのリスタートを行うとか)を書いて自動化するという手もあるので、切り替え頻度に応じて工夫するとよいだろう。
ちなみにCLI版はPHP5がxampp\php\php.exe、PHP4がxampp\php4\phpcli.exeである。このとき読み込むのは当該ディレクトリにあるphp.iniなので、モジュール版と同じphp.iniをCLI版にも適用したい場合はこっちにもコピーする必要がある。
なんでいまさらこんなエントリを書いたかというと、長いことサボっていたUnitTestを導入するためである。そちらについてはこちらのエントリで。
【リンク集】
PHP5.2.6(for Windows)に注意する
http://kwappa.txt-nifty.com/blog/2008/05/php526for_windo_d771.html
apache friends – xampp for windows
http://www.apachefriends.org/jp/xampp-windows.html
SourceForge.net: Files
http://sourceforge.net/project/showfiles.php?group_id=61776
XAMPP Windows版 – SoftAntenna
http://www.softantenna.com/lib/4240/index.html
質問5: PHP5 と PHP4 の切り替え方法は?
http://www.apachefriends.org/jp/xampp-windows.html#2756