マニュアル目次 > 困ったとき

よくあるつまずき

症状から原因を探すためのページです。

まず確認する3つ

どの症状でも、まずここを見てください。原因の大半はこの3つです。

  1. 静的生成が「有効」になっているか

    ダッシュボードの一番上で確認できます。無効だと何も起きません(ボタンも押せず、cron も処理しません)。無効のときは画面の上に案内が出ます。

  2. キューの「未処理」が減っているか

    ジョブ を「未処理」で絞り込んで確認します。減らないなら cron が動いていません。cronの設定 を確認してください。

  3. ログに警告・エラーが出ていないか

    「絞り込み:警告」で見ると、見るべきものだけが並びます。

ページが生成されない

状況原因と対応
その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)」「公開完了(ローカル)」と残ります。
rsyncが選べないサーバーで proc_open が無効化されていると、rsyncの選択肢が選べません(レンタルサーバーでよくある制限です)。設定画面に赤字でその旨が出ます。この場合は別サーバーへの転送自体ができないので、サーバー管理者に有効化を依頼してください。
切り替えたのに反映されない設定を保存したあと、もう一度設定画面を開いて「公開方式」がrsyncのままか確認してください。rsyncを選ぶと公開先パスの欄が隠れます。

rsyncで「Host key verification failed」と出る

転送先のホスト鍵がまだ登録されていません。なりすましたサーバーへサイトを送らないよう、確認していない相手には転送しない作りになっています。

設定 > rsync設定 の 転送先のホスト鍵を取得 を押し、表示されたフィンガープリントを確認して登録してください。サーバーにログインする必要はありません。手順は 別サーバーへの配信 にあります。

「No ECDSA host key is known for [ホスト名]:ポート番号」のように、ポート番号付きで表示されます。登録も同じホスト・ポートの組み合わせで行われるので、設定画面のポート番号が正しいか確認してください。

公開先パスを保存できない

メッセージ意味と対応
公開先パスの中に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の接続情報)を控えておいてください。読み込み後に入力し直し、「全ページ再生成」で作り直します。公開先のファイルは消えませんので、公開サイトはそのまま表示され続けます。

初期データを読み込まずにテーマだけ差し替える場合は、設定は消えません。ただしテーマが変わると出力も変わるので、「全ページ再生成」はしてください。