どの症状でも、まずここを見てください。原因の大半はこの3つです。
ダッシュボードの一番上で確認できます。無効だと何も起きません(ボタンも押せず、cron も処理しません)。無効のときは画面の上に案内が出ます。
ジョブ を「未処理」で絞り込んで確認します。減らないなら cron が動いていません。cronの設定 を確認してください。
「絞り込み:警告」で見ると、見るべきものだけが並びます。
| 状況 | 原因と対応 |
|---|---|
| そのURLのジョブが無い |
そもそも対象として集まっていません。ジョブで検索しても出てこない場合は次を確認します。 ・「URL除外パターン」に当たっていないか ・ブログの記事・カテゴリ別一覧・ページ送り・タグ別・年別/月別・RSSは、全ページ再生成が自動で洗い出します(設定は不要です)。独自プラグインのページだけは自動では拾えないので、「手動登録URL」に足してください ・コンテンツが非公開になっていないか |
| ブログの記事だけ集まらない |
全ページ再生成は、コンテンツ管理にあるブログから記事を自動で洗い出します。それでも集まらない場合は次を確認してください。 ・設定の「コンテンツから収集」にチェックが入っているか(外れていると、この自動の洗い出しは行いません。内訳が 自動列挙=オフ になります)・そのブログ自体がコンテンツ管理で公開になっているか ・記事が公開状態か(公開期間の設定を含む) ・全ページ再生成のメッセージの内訳で 自動列挙 が 0件 になっていないか
|
| ジョブが「未処理」のまま | cron が動いていません。急ぐ場合はダッシュボードの 今すぐキュー処理 で確認できます。それで処理されるならcronの問題です。 |
| ジョブが「失敗」 | ジョブ一覧のURL欄の下にエラー内容が出ます。「stagingディレクトリを作成できません」「ファイル書き込みに失敗」なら書き込み権限の問題です。 |
| ジョブが「スキップ」 | 静的化の対象外と判断されました。ログインが必要なページ、リダイレクトされるページなどです。意図したページなら問題ありません。 |
| HTTPステータスが404 | CMS側でそのURLが存在しません。「差分生成する内容」のURLパターンが実際のURLと違っている可能性が高いです。ブラウザでCMSのそのページを開き、アドレス欄と見比べてください。 |
| HTTPステータスが500 | CMS側でエラーが起きています。同じURLをブラウザで開いて、同じエラーが出るか確認してください。 |
| 状況 | 原因と対応 |
|---|---|
| 失敗ジョブが残っている | 失敗が1件でもあると、全ページ再生成の後の公開は自動的に見送られます。中途半端なサイトを公開しないためです。原因を直して 失敗分を再試行 するか、そのページを対象から外してください。 |
| 公開先パスが未設定 | 設定画面の「公開先パス」が空だと公開できません。ログにその旨が出ます。 |
| 削除の安全ブレーキが働いた | 公開自体は行われますが、削除だけが見送られます。ダッシュボードとバッチ一覧に「削除を保留」と出て、管理者へメールが届きます。CMS側にアクセス制限・メンテナンス表示・URLの変更が無いか確認し、もう一度全ページ再生成してください(削除の安全ブレーキ)。 |
| 公開先に書き込めない | 公開先ディレクトリの権限を確認してください。 |
| 「差分生成のたびに公開する」がオフ | 記事を保存しても公開まで進みません。全ページ再生成のときだけ反映されます。 |
公開方式が「ローカル」のままになっています。公開先パスへのコピーも、空のときの「公開先パスが設定されていません」も、どちらもローカル方式の動きです。rsync方式では公開先パスはまったく使いません。
| 確認すること | 内容 |
|---|---|
| いまどちらで動いているか | ダッシュボードの「公開方式」に出ています。ログにも「公開完了(rsync)」「公開完了(ローカル)」と残ります。 |
| rsyncが選べない | サーバーで proc_open が無効化されていると、rsyncの選択肢が選べません(レンタルサーバーでよくある制限です)。設定画面に赤字でその旨が出ます。この場合は別サーバーへの転送自体ができないので、サーバー管理者に有効化を依頼してください。 |
| 切り替えたのに反映されない | 設定を保存したあと、もう一度設定画面を開いて「公開方式」がrsyncのままか確認してください。rsyncを選ぶと公開先パスの欄が隠れます。 |
転送先のホスト鍵がまだ登録されていません。なりすましたサーバーへサイトを送らないよう、確認していない相手には転送しない作りになっています。
設定 > rsync設定 の 転送先のホスト鍵を取得 を押し、表示されたフィンガープリントを確認して登録してください。サーバーにログインする必要はありません。手順は 別サーバーへの配信 にあります。
| メッセージ | 意味と対応 |
|---|---|
| 公開先パスの中にCMS本体があります | そのまま公開するとCMSのファイルが全部削除され、元に戻せません(設定画面も開けなくなります)。CMSとは別の、このプラグイン専用のディレクトリを指定してください。 |
| 「/」やその直下は指定できません | /・/var・/home のような浅いパスは、影響が大きすぎるため受け付けません。/home/ユーザー名/公開用フォルダ のように具体的に指定してください。 |
| 公開先パスと一時生成先パスが重なっています | この2つは別のディレクトリにしてください。同じにすると、自分が書き出したファイルを自分で消し合います。 |
| (警告)公開先には既にファイルが◯件あります | エラーではなく注意です。「公開先の余分なファイルを削除する」が有効な場合、それらは最初の公開で削除されます。中身を確認してください。 |
ボタンは予約するだけです(対象URLの収集も行いません)。実際に始まるのは次のcron実行時です。
| 状況 | 原因と対応 |
|---|---|
| いつまでも「未処理」のまま | cron の work が動いていません。cronの設定 を確認してください。すぐ試すならダッシュボードの「今すぐキュー処理」を押します。 |
| 状態が「失敗」になった | 収集の途中で止まりました。ログに理由が出ます。収集が60分たっても終わらない場合も、自動的に「失敗」にして次へ進めるようにしています(そのままだと差分生成の自動公開まで止まるためです)。 |
URLを1件も集められなかったときは、実行せずに中止します。そのまま進めると、前回作ったページがすべて削除対象になるためです。
メッセージに収集元ごとの内訳が出ます。URL収集方法 のチェックがすべて外れていないか、検索インデックスが空になっていないかを確認してください。
| 症状 | 原因と対応 |
|---|---|
| CSS・画像が出ない | 静的ファイル同期の問題です。静的ファイル同期の最後の節を確認してください。 |
| 拡張子なしのURLで404 | 固定ページは /works/foo.html という形で書き出されます。外部から /works/foo というURLで来た場合は開けません。URLとファイルの対応を参照してください。 |
| 一覧の2ページ目が無い | 種別「ページネーション」の差分生成する内容を登録していますか。登録していないと2ページ目以降は作られません。 |
| カテゴリ別一覧が無い | 同じく、種別「カテゴリ別一覧」の登録が必要です。 |
| CMSのURLが残っている | 設定画面の「公開サイトURL」を入力してください。空だとCMSのURLがそのまま残ります。 |
| フォームが送信できない | 静的サイトではPHPのフォームは動きません。「URLの読み替え」で外部フォームへ向けてください(URL収集)。 |
内容が変わっていないページは転送されないはずです。それでも毎回全部転送される場合、ページの中にアクセスのたびに変わる値が入っています。
見分け方は簡単です。同じページを2回生成して、書き出されたファイルを比べます。
cp static/staging/company/index.html /tmp/before.html
bin/cake hat_static_engine generate --url=/company/
bin/cake hat_static_engine work
diff /tmp/before.html static/staging/company/index.html
差分が出た行が原因です。よくあるのは、CSRFトークン・乱数のキャッシュ対策・生成日時の埋め込みです。対処は テーマ制作の注意点 にあります。
| 症状 | 対応 |
|---|---|
| 「実行中」のまま進まない | ロックの有効期限(初期値30分)が過ぎれば自動的に解除されます。まず待ってください。どうしても急ぐ場合だけ、処理が本当に動いていないことを確認してから ロックを強制解除 を押します。 |
| ジョブが「処理中」のまま | 処理が異常終了した場合です。こちらも期限が切れると自動的に「未処理」へ戻ります。 |
| 全ページ再生成が終わらない | ダッシュボードの「生成のペース」を見ます。1ページあたりが速いのに終わらないなら、cronの間隔か1回あたりの件数が足りていません(基本・実行・全生成)。 |
| 確認すること | 内容 |
|---|---|
| 公開したか | 削除もジョブとして処理され、公開のタイミングで公開先へ反映されます。 |
| 削除の設定 | 「公開先の余分なファイルを削除する」がオフだと、公開先からは消えません。 |
| 削除除外パターン | そのファイルが削除除外パターンに当たっていないか確認してください。 |
| 全ページ再生成をしたか | CMSから消えたページの検出は、全ページ再生成の最後に行われます。差分生成だけでは検出されないことがあります。 |
テーマの切り替えで初期データを読み込むと、baserCMS は本体・プラグインを問わずすべてのテーブルを空にしてから初期データを入れ直します。このプラグインの設定・生成済みURL・ログ・ジョブもここで消えます(このプラグインだけの挙動ではありません)。
切り替える前に、設定画面の内容(とくに一時生成先パス・公開先パス・rsyncの接続情報)を控えておいてください。読み込み後に入力し直し、「全ページ再生成」で作り直します。公開先のファイルは消えませんので、公開サイトはそのまま表示され続けます。