SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

わりと簡単IIS7

現状、メインのマシンがWindowsVista、Windows7なので、
IIS(Microsoft Internet Information Services)にも馴染んでおこうと努力してみる。

WebサーバーはApache!?

ApacheはWindows向け64bit版がないので心配。
「重複した I/O イベントはシグナルされた状態ではありません」なんて謎のエラーが出て困る。
IISは「Windowsの機能の有効化または無効化」で有効化すればすぐ利用することができる。
一応シェアもApacheについで2位なんですよ。

IISだとmod_rewrite相当の設定面倒じゃん?

Apacheの.htaccessなどで、以下のような設定をしている程度だったら、

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ index.php

IISではweb.configというファイルを、以下のように書いて、.htaccessと同じように置くだけでよい。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="rule1" patternSyntax="Wildcard">
          <match url="*" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

.htaccessじゃなくてweb.configなのね。と思っておけばよい。
web.configといったら、WordPressでも自動的に生成してくれるぐらいなので、知っておいて悪いものではない。

複雑なrewriteの設定をしてても、変換ツールが付属しているから試してみて。

IISだとサーバー設定わかんないもん。

ほら、WindowsらしくGUIだよ(インターネットインフォメーションサービス(IIS)マネージャー)。
コマンドラインでの操作なんてしなくてよいのですよ。

nginxとかの方がかっこよさげ

IISもnginxもphpにはFastCGI使うから、構成は似たようなものだよ。
Windowsで開発するときは、割り切ってWebサーバーはIISにしちゃいなよ。

IISならでは……

・Excelを扱えてしまう(Excelファイルの中身からHTMLを出力するなど)。
・ついでにASP(Active Server Pages)にも手を出してみたり。。。

何が言いたかったのか

開発時にApacheの.htaccessでやってたrewriteの設定が、
IISならweb.configってファイルで、同じくらい簡単にできるということをメモっておきたかっただけです。

よくあるphpフレームワークで開発したり、WordPressのカスタマイズ作業ぐらいなら、十分できます。

その他の内容は追加でやや無理やり付け足しました。長々とすみません。

関連するメモ

コメント