日々様々なトラブルにハマっている、困ったシステム管理者の奮闘日記です。

IISでmoodle — PHP&FastCGIのセットアップ

諸事情により、ASP(Active Server Pages)ベースで動いているLMS(Learning Management System)とmoodleを共存してセットアップしてみようと検証してみた。

moodleはPHP & MySQL(主に)で動作するLMSであるので、プラットフォームはLinuxのほうが構築は容易なのだが、これをWindowsプラットフォーム・IISベースで動作させるにはどうすればよいか、以下試行錯誤した結果のメモ。

動作環境

Webサーバ:Windows Server 2003 R2 & IIS6.0、PHP5.6.2、moodle 1.9.2

DBサーバ:Windows Server 2003 & MS SQL Server 2000(ASPベースLMS用) & MySQL4.1(moodle用)

PHPのインストール

PHPのサイトより、Windows Binaries(installer)をダウンロードし、実行。


[Next] をクリック。


「I accept~」をチェックして[Next] をクリック。


phpをインストールパスを設定し、[Next] をクリック。


「IIS FastCGI」を選択し、[Next] をクリック。


Extensionsの以下のオプションを有効にする。
とりあえずmoodleで使いそうなオプションを有効にした。

  • Curl
  • GD2
  • IIS Administration
  • LDAP — moodleでLDAP(Active Directory)認証させる予定のため
  • Multi0Byte String
  • MySQL
  • MySQLi
  • OpenSSL
  • Standard PHP Library
  • XML-RPC

注意:netoolsを有効にすると、FastCGIがエラーになって起動しない現象が発生したので注意


[Install] をクリック。


[Finish] をクリック。

この段階でIISのPHPには”%SystemRoot%\system32\inetsrv\fcgiext.dll”が関連付けされているが、該当するdllがない状態となる。
fcgiext.dllは次のステップでインストールされる。

FastCGIのインストール

下記サイトよりFastCGI Extension for IIS6.0 – RTM をダウンロード
http://www.iis.net/downloads/default.aspx?tabid=3

結局マイクロソフトのサイトに飛ぶ


[Next] をクリック


「I accept~」をチェックし、[Next] をクリック。


[Install] をクリック。


[Finish] をクリック。


インストール終了後、FastCGI HandlerのWebサービス拡張が作成され、「許可」になっている。

ここで、内容に「<?php phpinfo(); ?>」を記載した「info.php」を作成し、アクセスすると下記のような内容を表示するページとなった。

FastCGI Error
The FastCGI Handler was unable to process the request.
----------------------------------------------------------------

Error Details:

Could not find entry for "php" on site 1 in [Types] section.
Error Number: 1413 (0x80070585).
Error Description: ?C?“?f?b?N?X?a?3?o?A?・?B
HTTP Error 500 - Server Error.
Internet Information Services (IIS)

下記のようにfcgiext.iniを編集する必要がある。

fcgiext.iniの編集

C:\WINDOWS\system32\inetsrv\fcgiext.iniを下記のように編集する。

[Types]
php=Application 1

[Application 1]
ExePath=C:\Program Files\PHP\php-cgi.exe
QUEUELength=1001
MaxInstances=20
IdleTimeout=200
ActivityTimeout=20
RequestTimeout=600
InstanceMaxRequests=1000
IgnoreExistingDirectories=n

これで正常に動作する。

参考:http://labs.progfast.jp/index.php/arts/wordpress-by-fastcgi-for-iis/
Fukui Labsさま、貴重な情報ありがとうございます。

次回 IISでmoodle — MySQLデーモンのインストール


You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

AddThis Social Bookmark Button

Leave a Reply