技術情報

WindowsにIISをインストールし、Matomo用に設定するにはどうすればよいですか?

Matomo用にWindows上でMySQLPHPをセットアップしたので、最後に以下のガイドを使ってMatomoのウェブサーバーとして動作するようにIISをセットアップしましょう。

IISのインストール

これはOSによって異なります。以下のガイドがあなたのOSに合わない場合は、オンラインでIISのインストールを検索してください。

  1. まず、コントロールパネルを選択します。

  2. プログラム]セクションで、[Windowsの機能をオンまたはオフにする]を選択します。

  3. 次のような画面が表示されるかもしれません:

  4. 以下の画面でチェックされている機能をクリックし、OKボタンを押します。

  5. プログレスバーが表示されます。

  6. インストールが完了したら、次のURLをブラウザに入力してください:http://localhost.
    インストールに成功すると、IISページが表示されます。

おめでとうございます!

index.phpをデフォルトのコンテンツ・ページとして扱うようにIISを設定する。

  1. IIS Managerを開くには、[スタート]をクリックし、[プログラムとファイルの検索]ボックスに「iis」と入力し、Enterキーを押します。

  2. サーバーレベルでDefault Documentを選択し、開きます:

  3. Add…をクリックし、index.phpと入力します:

PHPファイルを処理するようにIISを設定する

  1. ハンドラーマッピングをクリックします:

  2. 右側のメニューからモジュールマッピングの追加をクリックします:

  3. ダイアログを以下のように設定します:

  4. OKをクリックします。

  5. fastCGIアプリケーションとして追加するかどうかを尋ねるプロンプトが表示されます。noを選択してください。

IISバインディングの設定

  1. IISマネージャーを開き、Matomoを含むウェブサイトを選択します。

  2. 次にバインディングを選択します。

  3. 追加を選択します。

  4. Matomoのドメインを入力し、OKをクリックします。

  5. バインディングが追加されたことを確認します。

  6. DNSエントリーを更新し、サーバーを指すようにします。

IISのFastCGIタイムアウトを設定する

次に、IIS Managerのserver/IIS/FastCGI Settings/Editで設定されているactivityTimeoutを、デフォルトよりも大きな値に変更する必要があります。
アーカイバが処理する必要のあるデータ量によっては、アーカイバが処理を完了できるようにするために、この値を非常に大きな値(36000以上など-これは10時間に相当)にする必要があるかもしれません。
これを高い値に設定しないと、Matomoアーカイバはレポートを処理できなくなります。

これを変更したら、変更を有効にするためにサーバーを再起動する必要があります。

また、例えばIIS 7.5でアクティビティタイムアウトの設定を変更するには、以下の手順に従ってください:

  1. InetMgrを開く(windowsキー+Rを押し、Inetmgrと入力してエンターキーを押す)

    open inet manager from run command

  2. フィルタを使用して FastCGI 設定を検索します。

  3. Edit…をクリックし、Activity Timeoutの値を36000以上に変更する。

  4. 値を変更したら、変更を有効にするためにサーバーを再起動する必要があります。

注意:この値を変更する手順は、インストールされているIISのバージョンによって異なる場合があります。

リクエストフィルタリングを無効にする(Heatmap & Session Recordingプラグイン用)

ヒートマップ&セッション録画を使用している場合、設定>診断>システムチェックで、以下の警告メッセージが表示されることがあります:

Requesting 'https://analytics.example.com/plugins/HeatmapSessionRecording/configs.php?idsite=4&trackerid=5lX6EM&url=http%3A%2F%2Ftest.test%2F' resulted in an SSL error.
    Maybe you are using a self signed certificate?
    Please open the URL manually in a browser to see if the response contains 'Piwik.HeatmapSessionRecording'.
    If not, you might need to modify your server configuration as this file needs to be accessible via a browser from the Internet or Intranet.
    

この問題は、URLパス/plugins/HeatmapSessionRecording/config.phpをリクエストすると404エラーになるというものです。これは、インターネットインフォメーションサービス(IIS)7.0で導入されたセキュリティ機能である「リクエストフィルタリング」が原因と考えられます。

ヒートマップとセッション記録を期待通りに動作させるには、以下の手順でリクエストフィルタリングを無効にしてください。またIISドキュメントのリクエストフィルタリング.

リクエストフィルタリングを無効にするには

  1. タスクバーで、[スタート]をクリックし、[管理ツール]をポイントし、[サーバーマネージャ]をクリックします。

  2. Server Manager階層ペインで、Rolesを展開し、Web Server (IIS)をクリックします。

  3. Web Server (IIS)] ペインで、[Role Services] セクションまでスクロールし、[Add Role Services] をクリックします。

  4. 役割サービスの追加ウィザードの「役割サービスの選択」ページで行います:

    → リクエストフィルタリングの選択解除
    をクリックし、「次へ」をクリックします。

  5. 結果ページで「閉じる」をクリックする。

リクエストフィルタリングが無効になったので、[設定]>[診断]>[システムチェック]で警告が表示されなくなりました。

ウェブサーバーが応答していることを確認する

WebサーバーがPHPスクリプトを実行するように正しく設定されていることを素早く確認するために、c:˶‾website‾rootにphpinfo.phpという名前のファイルを作成する:

<?php
    phpinfo();
    

このページをhttp://127.0.0.1/phpinfo.php、同様のphpinfo出力が表示される:

おめでとうございます。Web サーバーが動作し、PHP7 リクエストを処理するように正しく設定されています。

Matomo を IIS の webroot にコピーする。

IISをセットアップしたので、Matomoのファイルを

これでMySQLそしてPHPWindowsでMatomoを使用する場合、IISがMatomoのウェブサーバーとして動作するように、以下のガイドを使ってセットアップすることができます。

IISのインストール

これはOSによって異なります。以下のガイドがあなたのOSに合わない場合は、オンラインでIISのインストールを検索してください。

  1. まず、コントロールパネルを選択します。

  2. プログラム]セクションで、[Windowsの機能をオンまたはオフにする]を選択します。

  3. 次のような画面が表示されるかもしれない:

  4. 以下の画面でチェックされている機能をクリックし、OKボタンを押すだけです。

  5. プログレスバーが表示されます。

  6. インストールが終わったら、ブラウザに以下のURLを入力して確認する:http://localhost.
    インストールに成功すると、IISページが表示されます。

おめでとう!

index.phpをデフォルトのコンテンツ・ページとして扱うようにIISを設定する。

  1. IIS Managerを開くには、[スタート]をクリックし、[プログラムとファイルの検索]ボックスに「iis」と入力し、Enterキーを押します。

  2. サーバーレベルでDefault Documentを選択し、開く:

  3. Add…をクリックし、index.phpと入力する:

PHPファイルを処理するようにIISを設定する

  1. ハンドラのマッピングをクリックします:

  2. 右側のメニューから Add Module Mapping をクリックします:

  3. ダイアログを以下のように設定する:

  4. OKをクリックする。

  5. fastCGIアプリケーションとして追加するかどうかを尋ねるプロンプトが表示されます。noを選択してください。

IISバインディングの設定

  1. IISマネージャーを開き、Matomoを含むウェブサイトを選択します。

  2. 次にバインディングを選択する…

  3. 追加を選択 …

  4. Matomoのドメインを入力し、OKをクリックします。

  5. バインディングが追加されたことを確認する。

  6. DNSエントリーを更新し、サーバーを指すようにします。

IISのFastCGIタイムアウトを設定する

次に、IIS Managerのserver/IIS/FastCGI Settings/Editで設定されているactivityTimeoutを、デフォルトよりも大きな値に変更する必要があります。
アーカイバが処理する必要のあるデータ量によっては、アーカイバが処理を完了できるようにするために、この値を非常に大きな値(36000以上など-これは10時間に相当する)にする必要があるかもしれない。
これを高い値に設定しないと、Matomoアーカイバはレポートを処理できなくなります。

これを変更したら、変更を有効にするためにサーバーを再起動する必要があります。

また、例えばIIS 7.5でアクティビティタイムアウトの設定を変更するには、以下の手順に従ってください:

  1. InetMgrを開く(windowsキー+Rを押し、Inetmgrと入力してエンターキーを押す)

    open inet manager from run command

  2. フィルタを使用して FastCGI 設定を検索します。

  3. Edit…をクリックし、Activity Timeoutの値を36000以上に変更する。

  4. 値を変更したら、変更を有効にするためにサーバーを再起動する必要があります。

注意:この値を変更する手順は、インストールされているIISのバージョンによって異なる場合があります。

リクエストフィルタリングを無効にする(Heatmap & Session Recordingプラグイン用)

ヒートマップ&セッション録画を使用している場合、設定>診断>システムチェックで、以下の警告メッセージが表示されることがあります:

Requesting 'https://analytics.example.com/plugins/HeatmapSessionRecording/configs.php?idsite=4&trackerid=5lX6EM&url=http%3A%2F%2Ftest.test%2F' resulted in an SSL error.
Maybe you are using a self signed certificate?
Please open the URL manually in a browser to see if the response contains 'Piwik.HeatmapSessionRecording'.
If not, you might need to modify your server configuration as this file needs to be accessible via a browser from the Internet or Intranet.

この問題は、URLパス/plugins/HeatmapSessionRecording/config.phpをリクエストすると404エラーになるというものです。これは、インターネットインフォメーションサービス(IIS)7.0で導入されたセキュリティ機能である「リクエストフィルタリング」が原因と考えられます。

ヒートマップとセッション記録を期待通りに動作させるには、以下の手順でリクエストフィルタリングを無効にしてください。またIISドキュメントのリクエストフィルタリング.

リクエストフィルタリングを無効にするには

  1. タスクバーで、[スタート]をクリックし、[管理ツール]をポイントし、[サーバーマネージャ]をクリックします。

  2. Server Manager階層ペインで、Rolesを展開し、Web Server (IIS)をクリックします。

  3. Web Server (IIS)] ペインで、[Role Services] セクションまでスクロールし、[Add Role Services] をクリックします。

  4. 役割サービスの追加ウィザードの「役割サービスの選択」ページで行います:

    → リクエストフィルタリングの選択解除
    をクリックし、「次へ」をクリックします。

  5. 結果ページで「閉じる」をクリックする。

リクエストフィルタリングが無効になったので、[設定]>[診断]>[システムチェック]で警告が表示されなくなりました。

ウェブサーバーが応答していることを確認する

WebサーバーがPHPスクリプトを実行するように正しく設定されていることを素早く確認するために、c:˶‾website‾rootにphpinfo.phpという名前のファイルを作成する:

<?php
phpinfo();

でこのページにアクセスするとhttp://127.0.0.1/phpinfo.phpを実行すると、同様のphpinfo出力が表示される:

おめでとうございます。Web サーバーが動作し、PHP7 リクエストを処理するように正しく設定されています。

Matomo を IIS の webroot にコピーする。

IISをセットアップしたので、MatomoのファイルをC:Inetpubwwwroot”フォルダにコピーします。

最新リリースMatomo 5.0.3のダウンロードここから:

Matomoがダウンロードされたら、ファイルを解凍し、matomoフォルダの中をC:Inetpubwwwrootフォルダにコピーします。

Matomoのコンソールコマンドが動作していることを確認する。

次に、コマンドを開き、Matomoコンソールを実行して、期待通りに動作していることを確認する:

php "c:Inetpubwwwrootconsole"

コンソールのコマンド出力は次のようになる:

Matomoのインストールを続ける

Windows上でMySQL、PHP、IISのセットアップが完了したら、Matomo 5分間インスタレーションを続けることができます。

Matomoの5分間のインストールが完了したら、MatomoはWindowsサーバー上で正常にセットアップされ、実行されているはずです。

Matomoが起動しているので、引き続きMatomoでレポートをアーカイブするためのスケジュールタスクを設定します
Windows 用 MySQL をまだセットアップしていない場合は、こちらのガイドを参照してください:WindowsにMatomo用のMySQLをインストールして設定するには?
また、PHP for Windowsをインストールし、こちらのガイドに従ってセットアップする必要があります:Windows で Matomo 用に PHP をインストールし、設定するにはどうすればよいですか?