baserCMS は、ページが表示されるたびにPHPがデータベースを読んでHTMLを組み立てています。このプラグインは、その組み立て結果をあらかじめHTMLファイルとして保存し、公開用のサーバーへ置くものです。
公開されるサイトはただのHTMLファイルの集まりになるので、表示が速く、PHPやデータベースの障害・攻撃の影響を受けません。CMS本体を社内や別サーバーに隠したまま運用することもできます。
設定画面や各画面に出てくる言葉は、この4つのどこを指しているかを意識すると迷いません。
| 場所 | 何が置かれるか |
|---|---|
| CMSCMS基本URL | いま使っている baserCMS そのものです。ここでコンテンツを編集します。このプラグインは、ここへHTTPでアクセスして表示結果を受け取ります。 |
| 書き出し先一時生成先パス | 生成したHTMLを一旦ためておく作業場です。公開ディレクトリの外に置きます。作りかけの状態が閲覧者に見えないようにするためです。 |
| 公開先公開先パス / rsync転送先 | 閲覧者が実際に見るファイルの置き場所です。書き出し先の内容を「公開」操作でここへ反映します。 |
| 公開サイトURL公開サイトURL | 公開先をブラウザで見るときのURLです(例 https://www.example.com/)。HTMLの中に残ったCMSのURLを、このURLへ書き換えるのに使います。 |
このプラグインでいちばん誤解されやすいところです。管理画面のボタンやコンテンツの保存でやっているのは、「あとで作るページの一覧に積む」ことだけです。実際にHTMLを作るのは、サーバーで定期的に動く cron です。
こうしているのは、1000ページのサイトで「全ページ再生成」を押したときに、その場で1000ページ分を処理しようとすると必ず途中でタイムアウトするからです。少しずつ分けて処理することで、ページ数が増えても止まらないようにしています。
ページを作り直すきっかけは2種類あります。どちらか一方だけでも運用できます。
| 種類 | いつ動くか | 対象 |
|---|---|---|
| 全ページ再生成 | 夜間の決まった時刻(設定)、または管理画面のボタン | サイトのすべてのページ。前回あったのに今回現れなかったページは、公開先からも削除されます。 |
| 差分生成 | 記事や固定ページを保存・削除した直後 | 「差分生成する条件」で指定したページだけ。数ページで済むので数十秒で反映されます。 |
公開先にはPHPがありません(別サーバーへ配信する場合は特に)。そのため、アクセスのたびに処理が要るページは静的化できません。
これらは「URL除外パターン」で対象から外し、必要なら別の方法を用意します。既定値でもフォームの送信先や管理画面は除外済みです。
| できないもの | どうするか |
|---|---|
| メールフォーム | Googleフォームなど外部のフォームへ差し替えます。リンク先だけを差し替える「URLの読み替え」が使えます。 |
| サイト内検索 | 検索結果は入力によって変わるため作れません。外部の検索サービスを埋め込むか、検索機能を外します。 |
| 会員専用ページ | ログイン状態を判定できません。静的化の対象から外し、CMS側で運用してください。 |
| 閲覧者ごとに変わる表示 | カートの中身、「〇〇さん、こんにちは」などは全員に同じHTMLが配られます。JavaScriptで表示する形に変えてください。 |