ホーム > 作業メモ > IISでphpを使う(1)

IISでphpを使う(1)

IIS上で php 動作させるときのメモ。phpの導入から下準備まで。

 phpを利用したサイトの運用、或いはphpそのものの勉強の為の動作環境の整備などの解説をみると、殆どが apache + php の環境です。まぁ生い立ちを考えると妥当なんですが、仕事柄、周囲にやたらIISが多い私としては、やっぱりIISで動いてくれた方が楽。aspも動くし(笑)…ということで、IIS上でphpをふつーに動かすためのメモです。
構築環境はWindows Server 2003 Standard(IIS6.0)、phpは5.2.9を利用しています。IISについてはありものを利用するのが前提なので導入手順は省略…。今IISが動いていない場合は素直に apache から入れる方がいろいろ便利じゃないかと思います。

入手と解凍

 php は公式ページからWindows Binary のzip package を入手。インストーラでも構わないんですが、5.2.9現在、インストーラはcgi版しか対応していない模様。IISを利用する以上、ISAPI版を使わないと意味がない、と個人的には思うので、ここはzip packageを導入することにしますです。
「cgi版とISAPI版って何が違うのYO!」といいますと、apacheでいうcgiとモジュールの違いとほぼ一緒になるのですが…基本的にcgi版は要求の度に起動/終了処理が入るため動作速度が遅くなる、というのが差になるかと。apacheだと実行時のパーミッションに差が出るみたいなんですが、IISだと実行ユーザはどっちでもアプリケーションプールのユーザみたいだしなぁ…(未確認)。
入手したzipパッケージを解凍して、中のファイルを適当なフォルダに放り込みます。どこでもいいですが、パスには空白が含まれないほうが望ましい模様。とくにこだわりが無ければc:¥php とかでいいんぢゃないかと。

php_01

IISで動作させるためのアクセス権の設定

phpを設置したフォルダに、インターネットゲストアカウント(規定ではIUSR_****)とNETWORK SERVICE(もしくはphpを利用したいアプリケーションプールの実行ユーザーアカウント)に対して読み取りと実行のアクセス権を付与します。後者が設定されていないとphp自体が動作不可となり、前者が設定されていないとphp実行時に認証が必要となります。

アクセス権付与

動作環境の設定(php.iniの設定)

phpをインストールしたフォルダ内の”php.ini-dist”を%win_dir% にコピーして”php.ini”にリネームし、さらに、php.ini の以下を編集します(wordpress利用前提に、mbstringとmysqlのモジュールを有効にしています)。一部の行は最初コメントアウトされているのでコメントアウトを解除しませう。include_path及びextension_dirはphpの導入先フォルダを向けること。

include_path = “.;c:/php/includes;c:/php/pear”
;doc_root = “C:/Inetpub/wwwroot”
doc_root =
extension_dir = “c:/php/ext”
extension = php_mbstring.dll
extension = php_mysql.dll
output_buffering = On
output_handler = mb_output_handler
default_charset = UTF-8
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.detect_order = auto

doc_root は自分の環境のIISのドキュメントルートを指定のことdoc_rootは空じゃないとダメ…?不思議。要検証。他の解説だと文字コードはSJISになってるんだけど、ウチだとUTF-8じゃないとWordpressが文字化けしまくった。なんでやねん。

その他

 あとは必要に応じてシステム環境変数 PATH に phpのインストールフォルダを追記しておきます。何らかの理由でどうしてもPATHを通したくない!(いや、そうないと思いますが…)という場合は、phpインストールフォルダ内にある”php5ts.dll”を%windir%\System32\ フォルダにコピーしておいて下さい(php5ts.dllはphpのコアdllで、パスが通っている必要があります。)

カテゴリー: 作業メモ タグ:
  1. コメントはまだありません。
  1. トラックバックはまだありません。