IIS+phpする – せっかくのWindowsマシンだから
概要
せっかくWindowsマシンを使っているのだから、IIS+phpの環境が、さくっと作れるかやってみる。
- IISは、「Windowsの機能の有効化または無効化」で簡単に利用できる。
- php on IIS は、FastCGIでやるらしい。それなら、nginx+phpみたいな形になるので、形は悪くないよね。
- Apacheのmod_rewrite相当のこともできる。
- 設定は全部GUIから可能。
LinuxでApacheである必要がない場合や、ちょっとした開発にはちょうどよいのではなかろうか。
以下、OSは Windows7 Home Premium にて。
IIS有効化
コントロールパネル → プログラム → Windowsの機能の有効化または無効化。
「インターネットインフォメーションサービス」の「World Wide Web サービス」を有効化。
FastCGIするので、「アプリケーション開発機能」の「CGI」も有効化。
ついでに、GUIで設定したいので、「Web 管理ツール」の「IIS 管理コンソール」も有効化。
この時点で、http://localhost/ や http://127.0.0.1/ にアクセスすると、IIS7の初期のページが表示される。
php入手、設定
Windows向けバイナリを、こちらからダウンロード http://windows.php.net/download/。
IISの場合、Non Thread Safe を使う。zip版でよい。解凍して置くだけでよい。
C:\php など任意の場所に置く。
あとで、解凍したファイルの中の php-cgi.exe を使う。
php.ini を、用途に応じて編集しておく(MySQLを有効化したり、mssqlを有効化したり…)
IISでphpが動くようにする
IISとphpの連携はFastCGI。
ハンドラーマッピングの設定で、*.phpをFastCgiModuleで扱うようにして、実行可能ファイルに先ほどの c:\php\php-cgi.exe を指定する。名前は何でもよい。
動作確認として、phpinfo()などを表示するphpを置いて、アクセスしてみるとよい。
IISでURLのrewriteができるようにする
URL書き換えモジュールは別途インストールしなくてはならない。
こちらからダウンロード http://www.iis.net/download/URLRewrite
日本語版が欲しいときは、画面右側ではなくて、画面右ずっと下の方の「Japanese」のところからダウンロードする。
インストーラー(msi)なので、画面に従ってインストール。
インストールして、IISマネージャーを再起動すると、管理画面に”URL 書き換え”という項目が増える。
………………………………………………………………………………
以上で準備はOK。
………………………………………………………………………………
(実習)URL 書き換え機能を使ってみる
あるディレクトリ以下へのアクセスを、あるphpへのアクセスに書き換えるよう設定する。
mod_rewriteでよくやる”あれ”ですね。ファイルがあればそちらへ。なければ全部index.phpに集める。
.htaccessに書くときはこんな感じになる、”あれ”です。
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*$ index.php
IIS マネージャーの管理画面で、
・該当のディレクトリを選択
・URL 書き換えを開く
・規則の追加
・受信規則 の 空の規則 を選択
名前: 適当に付ける
URLの一致: パターンを.*に
条件: {REQUEST_FILENAME} が ファイルではないとき
and {REQUEST_FILENAME} が ディレクトリではないとき
アクション: 書き換え で index.php に 設定
操作がややこしくて説明が面倒だが、「mod_rewrite規則のインポート」という機能も用意されているので、詳細はよく分からなくてもなんとなく設定できてしまう。
この設定をすると、対象のフォルダの中に、.htaccessのかわりにweb.configというXMLファイルができている。「IISだとこうなるのかー」というところは追々慣れていくとよいと思う。
これでWordPressなどもちゃんと動かすことができる。
参考
PHP on Windows ガイドライン (ドラフト) by Microsoft
コメント