インターネット情報サービス
内容
IISのインストール手順(Windows 7以降)
- [コントロールパネル]に移動し、[プログラム]をクリックして、[Windowsの機能の有効化または無効化]をクリックします。
- 「インターネットインフォメーションサービス」と「インターネットインフォメーションサービス/アプリケーション開発機能/ CGI」にチェックを入れます
- Microsoft Web Platform Installerをインストールします。
PHPのインストール手順
公式のMS Platformインストーラのみを使用することを強くお勧めします。必要なコンポーネントをすべて自動的にインストールし、PHPマネージャで簡単に設定できるようにします。手動でインストールしようとすると失敗することが多く、Moodleが正しく機能しなくなる可能性があります。残念ながら、MSは通常PHPの最新バージョンを配布していません。手動でダウンロードする必要があるかもしれません。
- Microsoft Web Platform Installerをインストールします。
- Web Platform Installerを使用して最新のPHP 7.2.xをインストールする
- [オプション] Web Platform Installerを使用してURL Rewrite 2.0をインストールする
必要に応じて、必要なコンポーネントを手動でインストールすることもできます。
- IIS用PHPマネージャをダウンロードしてインストールします
- https://windows.php.net/download/から最新のPHP 7.2.x VC15 x 64 Non Thread Safeをダウンロードしてください 。 64ビットWindowsではx64を使うべきです。それ以外の場合は、x86
- ZipファイルをC:\ PHP \などのディレクトリに抽出します。
- 64ビットWindowsにx86とx64の両方をインストールする - Visual Studio 2017用のVisual C ++再頒布可能パッケージをインストールする[1]
- インターネットインフォメーションサービス(IIS)マネージャを開きます - [このコンピュータ]を右クリックし、[管理]を選択します。
- PHPマネージャのアイコンをクリック
- 新しいPHPバージョンを登録します - C:\ PHP \ php-cgi.exeを選択します
警告:PHPはIISのFastCGI経由で設定する必要があります。古いCGIインターフェースはいくつかのファイル名に問題があることが知られています。
PHPの設定手順
- PHP設定をPHP Managerが推奨する値に設定します
- PHPマネージャで必要な拡張機能を有効にします。php_intl.dll、php_pgsql.dll
- OPcache拡張を有効にする
- PHP.iniでタイムゾーンを設定してください
- PHP.iniで適切なメモリ制限を設定する
IIS構成ステップ
- セットアップURLの書き換え
- 詳細なエラーページを表示するようにIISを構成します。
- 非常に長いCGIタイムアウトを設定します - 1時間以上。
- IISマネージャでMoodleディレクトリを新しい仮想ディレクトリとして追加するか、サイトディレクトリとして設定します。
スラルカメント
スラッシュ引数の 使用で説明されているように、関数スラッシュ引数はMoodleのさまざまな機能が正しく動作するために必要です。
IIS 7では、デフォルトで相対パス引数がサポートされています。うまくいかない場合はphp.iniで以下を有効にしてみてください。
cgi.fix_pathinfo = 1
URLの書き換え
下記のようにレジストリを変更できない場合は、書き換え規則を手動で設定してみてください。MicrosoftWeb Platform Installerによる PHPのインストールでは、必要なURL Rewrite 2.0モジュールがインストールされます。
以下の書き換えルールを追加して、MoodleでのUnicodeファイル名のサポートを有効にし、内部ファイル長の制限を回避してYUIファイルサービングを壊します。
- パターンにマッチする - 正規表現 -
^([^\?]+?\.php)(\/.+)$
- アクション - 書き換え -
{R:1}\?file={R:2}
- クエリ文字列を追加 - 有効
- 後続のルールの処理を停止します - 有効
オプションのUTF-8ファイル名の修正
デフォルトでは、IISはMoodleにアップロードされたファイル内のUnicode文字を処理することができません。これは、MoodleサイトでJavascriptが機能しない(ナビゲーションを拡張することなど不可能)、または壊れたCSSスタイルをもたらす可能性があります。
サーバー変数にUTF-8エンコーディングを使用するおよびWindows 7およびWindows Server 2008 R2のIIS 7.5でUTF-8エンコーディングをサポートする方法 について は、KB 2277918修正プログラムを参照してください 。
実行します。
reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO
CGIタイムアウト
デフォルトでIISは5分の活動の後にPHPスクリプトの実行を停止するように設定されています、これはアップグレードやcronのような長時間実行中のMoodleスクリプトを妨害します。タイムアウトは少なくとも1時間に増やす必要があります。
ディレクトリ許可
デフォルトのIISアカウントはIIS_IUSRSです。Moodleディレクトリ(読み取り専用)とデータルートディレクトリ(読み取り/書き込み)への適切なアクセス権を持っていることを確認してください。
デバッグの問題
既定では、IISは運用サイトでエラーの詳細を意図的に隠すカスタムエラーページを使用します。
しかし、あなたがMoodleの問題を診断しているとき、それはあまり役に立ちません。特定のMoodleエラーメッセージが表示されるように、IISでこれらのデフォルトエラーメッセージを一時的に無効にすることができます。これを実現するには、あなたのMoodleサイトでIISのカスタムエラーページの "existingResponse"設定を "PassThrough"に設定してください。その結果、問題が発生するとMoodleはエラーに関するより具体的なメッセージを表示します。
通常、問題に関する詳細が明らかにされていない一般的なIIS "404"エラーメッセージは表示されなくなります。
デバッグメッセージが表示されるように、 [設定]> [サイト管理]> [開発]> [デバッグ]のデバッグオプションも有効にする必要があります。