ダイナミックパブリッシングを利用する準備
ダイナミックパブリッシングは、Apache の .htaccess によるリライト設定か、IIS(Internet Information Services)の URL Rewrite 機能を利用しています。 また、以下のバージョンの PHP がサーバーにインストールされ、PHP から MySQL を利用可能な状態になっている必要があります。
- PHP 5.3 以上(PHP 7.2.x 以上を推奨)
- r.4207 で PHP 7.0.x に対応
- r.4601 で PHP 7.1.x / 7.2.x / 7.3.x に対応
- r.4607 で PHP 7.4.x に対応
Apache の場合
Apache でダイナミックパブリッシングを利用するには、Apache が以下の条件を満たしている必要があります。
- mod_rewrite モジュールが有効であること
- php-mysql モジュールがインストールされていること
- サイトパス配下で .htaccess を利用できること
例えば、ダイナミックパブリッシングを利用するサイトの「サイトパス」が「/usr/local/apache/htdocs/site」の場合、Apache の設定ファイル(httpd.conf)に以下の記述を追加します。
<Directory /usr/local/apache/htdocs/site>
AllowOverride All
</Directory>
.htaccess は、Movable Type の管理画面でダイナミックパブリッシングを利用する設定に変更した時点で自動的に生成されます。
IIS(Internet Information Services)の場合
IIS でダイナミックパブリッシングを利用するには、IIS が以下の条件を満たしている必要があります。
- URL Rewrite 機能(web.config への URL Rewrite の設定)を利用できること
- PHP で mysqli 拡張もしくは pdo_mysql 拡張が有効化されていること
web.config は、Movable Type の管理画面でダイナミックパブリッシングを利用する設定に変更した時点で自動的に生成されます。
URL Rewrite 機能は IIS には標準搭載されておらず、別途 URL Rewrite Module をインストールする必要があります。インストールしていない場合には、マイクロソフト社(www.iis.net)のページから「Japanese: x64 installer」をダウンロードし、サーバーにインストールしてください。
基本的に環境変数「EnableAutoRewriteOnIIS」は mt-config.cgi に記述しない、もしくは、設定値を 1(デフォルト)にしてご利用ください。
EnableAutoRewriteOnIIS を 0 で設定している場合、URL Rewrite 設定が web.config に書き込まれなくなります。Movable Type が web.config を生成したあと、今後「サイト URL」「サイトパス」を変更する予定がなく、独自の設定を web.config に追加する必要がある場合にのみ、EnableAutoRewriteOnIIS の設定値を 0 にしてください。
サイトディレクトリのアクセス権限の設定変更
ダイナミックパブリッシングでは、PHP により動的にページが生成されます。
そのため、対象サイトの「サイトパス」で指定したディレクトリに対して、PHP を実行する IIS_IUSRS グループによる書き込みと削除ができるようアクセス権限を付与しておく必要があります。
「Movable Type を設置する(Windows)」のページにある「最終的なアクセス権限」に加え、 IIS_IUSRS グループのアクセス権限を以下のように変更しておきます。
種類 | ユーザー/グループ | 設定する権限 |
---|---|---|
MT Site | IUSR | 変更、読み取りと実行、フォルダの内容の一覧表示、読み取り、書き込み |
IIS_IUSRS | 変更、読み取りと実行、フォルダの内容の一覧表示、読み取り、書き込み |
アクセス権限は配下のディレクトリやファイルに継承される設定になっている必要があります。デフォルトでは継承される設定になっているため、通常は考慮する必要はありません。サイトディレクトリ配下にあるディレクトリやファイルに対して、何らかの理由で意図的に [継承の無効化] をおこなっている場合には、無効化を解除してアクセス権限を継承する状態にしてください。
IIS マネージャーでの設定追加
IIS で PHP スクリプトを認識させるために以下の設定を追加します。
- ハンドラーマッピングの追加
-
1. IIS マネージャーで、作成したサイトをクリックします。その後、「機能ビュー」内に表示される「ハンドラーマッピング」をダブルクリックします。
2. IIS マネージャーの右ペインにある「モジュールマップの追加...」をクリックします。
3.「モジュールマップの追加」画面で以下の項目に入力後、「OK」ボタンをクリックします。
- 要求パス…「*.php」
- モジュール…「FastCgiModule」
- 実行可能ファイル(オプション)… php-cgi.exe までの絶対パスを指定します。例「C:¥PHP¥php-7.4.6-nts-Win32-vc15-x64¥php-cgi.exe」
- 名前…「PHP」※PHP であることがわかればほかの名前でも問題ありません。
4.「この実行可能ファイルの FastCGI アプリケーションを作成しますか?」と表示されるので「はい」ボタンをクリックします。
5. ハンドラーマッピングに「PHP」が有効な状態で追加されていることを確認します。
- 既定のドキュメントの追加
-
1. IIS マネージャーで、作成したサイトをクリックします。その後、「機能ビュー」内に表示される「既定のドキュメント」をダブルクリックします。
2. IIS マネージャーの右ペインにある「追加...」をクリックします。
3.「既定のドキュメントを追加」画面で、「名前」に「index.php」と入力し、「OK」ボタンをクリックします。
4. 既定のドキュメントに「index.php」が追加されていることを確認します。