管理画面のボタンやコンテンツの保存は、「作るページの一覧に積む」だけです。実際にHTMLを作るのは cron です。詳しくは このプラグインの仕組み を参照してください。
crontab の例(パスは環境に合わせてください)
*/5 * * * * cd /var/www/html && bin/cake hat_static_engine work -q
30 3 * * * cd /var/www/html && bin/cake hat_static_engine full -q
0 4 * * 0 cd /var/www/html && bin/cake hat_static_engine purge-logs -q
| コマンド | 役割 | 間隔の目安 |
|---|---|---|
| work必須 | キューを処理して実際にHTMLを作ります。これが無いと何も生成されません。 | 5分おき。すぐ反映したいなら1分おきでも構いません |
| full | 全ページ再生成を予約します。この行では収集も生成もしません。対象URLの収集は次回の work が行います(1万ページ規模でも詰まらないようにするためです)。work が登録されていないと何も起きません。 |
1日1回、アクセスの少ない時間帯 |
| purge-logs | 90日より前のログを削除します(日数は --days 30 のように変えられます)。無くても動きますが、放置するとログが増え続けます。消えるのは管理画面のログだけです。ファイル側( logs/hat_static_engine.log)は logrotate などで別途管理してください。 |
週1回 |
purge-logs はオフでも動きます。
full の時刻は、設定画面の「全ページ再生成の実行時刻」と合わせてください。
設定画面の時刻だけを変えても、cron が動く時刻は変わりません。逆に、管理画面から手動で全ページ再生成する運用なら full の cron は不要です。
1回の work で処理できる件数は、設定画面の「Cron実行1回あたりの最大処理件数」(初期値30)と「実行の最大秒数」(初期値120)で決まります。先に達したほうで打ち切られ、残りは次回に持ち越します。
1時間あたりの処理能力は、おおよそ次のようになります。
| cronの間隔 | 1回の件数 | 1時間あたり | 1000ページの一巡 |
|---|---|---|---|
| 5分おき | 30件 | 360件 | 約3時間 |
| 5分おき | 100件 | 1200件 | 約1時間 |
| 1分おき | 30件 | 1800件 | 約35分 |
cd /var/www/html
bin/cake hat_static_engine status
設定と件数が表示されれば、コマンド自体は動いています。パスやPHPのバージョンが違うとここで失敗します。
ダッシュボードで「未処理」の件数を控え、5分ほど待ってから再読み込みします。減っていれば cron は動いています。
cron の実行ユーザー、PHPのパス、作業ディレクトリを確認します。cron のログにエラーが出ていないかも確認してください。
| 項目 | 内容 |
|---|---|
| 実行ユーザー | 書き出し先と公開先に書き込めるユーザーで実行してください。Web経由の実行(管理画面のボタン)とユーザーが違うと、片方で作ったファイルをもう片方が上書きできないことがあります。 |
| 二重起動 | 心配は要りません。実行中は鍵がかかり、後から来た実行は何もせず終わります。 |
-q オプション | 出力を抑えます。付けないと cron からメールが飛び続けます。 |
| ログファイル | logs/hat_static_engine.log は自動で削除されません。logrotate などで管理してください。 |