クヌギスキーマ
「自社サイトの各 URL に、JSON-LD/Microdata/RDFa の構造化マークアップが正しく入っているか」「Google のリッチリザルト対象機能をどれだけ満たしているか」「マークアップ内容とページの実コンテンツがズレていないか」を、定期クロールで継続的に可視化するためのウェブアプリケーションです。
クヌギスキーマ Ver 1(ベータ版)をダウンロード
kunugi_schema_Ver1.zip を解凍し、PHP 8.1 以上が動くサーバの公開ディレクトリ配下に配置してください。MIT ライセンスのオープンソースなので、登録・支払いなしで今すぐ使えます。
※ 必ず Basic 認証下で運用してください(後述)。
必ず最初にお読みください
導入前に下記の 4 項目を必ずご確認ください。とくに「Basic 認証」「対象サーバへの配慮」「メール送信設定」は、見落とすと予期せぬトラブルやパスワード再発行の不達につながります。
① これは「ベータ版」です
本ツールは Ver 1(ベータ版) です。本番運用に耐えうる動作確認は行っていますが、機能追加に伴いエラーが発生する可能性があります。重要な意思決定に使う前に、ご自身の環境で十分な検証を行ってください。
- DB は SQLite を使用。定期バックアップを必ず取得してください(同梱の
data/schema.db・WAL/SHM を別ストレージへ退避することを推奨)。 - 不具合に遭遇した場合は再現手順とログ(
data/cron.log・ブラウザの DevTools コンソール)を控えておくと原因特定が容易です。
② MIT ライセンスで配布しています
商用・非商用を問わず利用・改変・再配布できますが、トラブルを避けるために、以下の点を明記しておきます。
- 無保証です。使った結果のいかなる損害(売上ロス、データ消失、対象サーバへの過剰アクセスによるトラブル、情報漏えい等)も作者・配布元は責任を負いません。
- 再配布される際は、著作権表示と MIT 許諾表示を、ご自身の都合の良いファイル(README、ABOUT、画面のクレジット欄、ソース内コメント、
LICENSEファイルなど、形式は問いません)に記載していただければ大丈夫です。同梱のLICENSEファイルをそのまま残すのが一番手軽な方法です。 - 本ツールを組み込んだサービスを有償で提供することも可能です。再販時にご自身のサービスとして独自に保証・サポートを付けるかどうかは、再販者の自由です(保証付きで提供しても、無保証のまま提供しても問題ありません)。ただし、本ツール本体(クヌギスキーマ Project Contributors)の作者・配布元は、再販者および再販先のエンドユーザーに対して、いかなる保証も負いません。本ツールに起因するトラブルや損害があった場合の対応・補償は、再販者ご自身の責任で行ってください。
③ Basic 認証下での運用を強く推奨
クヌギスキーマ 自体にもログイン機能はありますが、Web サーバ側の Basic 認証を組み合わせ、二重に保護した状態で運用することを強く推奨します。理由は以下のとおりです。
- SQLite DB に 登録ユーザーのパスワードハッシュ・パスワード再発行トークン・クロール対象 URL の一覧が保存されます。万一画面が外部に公開されてしまうと、これらの内部情報が漏えいする恐れがあります。
- 同梱の
.htaccessにはdata/・src/・cron/の直接アクセスを拒否するRewriteRuleが含まれています。必ずそのまま残し、その上で Basic 認証も併用してください。 - 不特定多数からアクセスされる URL では公開しないでください。社内 / 関係者のみがアクセスできるパスに置く想定です。
-
さらに
data/・cron/各ディレクトリには、HTTP からの直接アクセスを常時拒否する.htaccessが標準で同梱されています。Basic 認証の設定漏れがあった場合でも、SQLite DB 本体・cron スクリプトが Web 経由で参照されることを防ぐ「二段目の防壁」として機能します。
Apache 2.4+(# data/, cron/ の .htaccess に同梱されているディレクティブ <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order deny,allow Deny from all </IfModule>mod_authz_core有効)ではRequire all denied、それ未満(2.2 系)ではDeny from allがそれぞれ適用され、サーバ側のモジュール構成に依存せず確実に拒否されます。これらの.htaccessは削除・改変しないでください。
④ クロール対象サーバへの配慮を必ず行ってください
クヌギスキーマ は自社サイトの構造化マークアップ点検を主眼に置いた小規模クローラです。ただし設定によっては短時間に多数のリクエストを送れてしまうため、必ず以下を守ってください。
- クロール対象は自社で運用している URL のみに限定してください。他社サイトへの無断クロールは利用規約違反・法令違反となる恐れがあります。
- 手動でクロール実行・Cron スケジュールの「クロール間隔(秒)」は最低 1 秒以上、安全側なら3〜5 秒を推奨します(手動画面の初期値は 5 秒)。
- User-Agent には
KunugiSchemaChecker/1.0を含む文字列を送ります。対象サーバ側で必要に応じて許可ルールを追加してください。 - 1 URL あたりのレスポンス本文は最大 4MB までを取得対象とします(大きな PDF などへの誤適用を防ぐため)。
⑤ メール送信(パスワード再発行用)の設定
パスワード再発行は、登録メールアドレス宛にワンタイムリンクを送信する方式です。サーバから外部メールを送信できる状態になっていることを事前に確認してください。
- 送信は標準の PHP
mail()関数を経由します。共用レンタルサーバの場合はそのまま使えるケースが多いですが、独自 VPS / クラウドでは MTA(postfixやsendmail)または外部 SMTP 経由の設定が必要です。 - 送信元アドレスはサーバ既定値が使われます。SPF / DKIM が未設定だと、Gmail などで迷惑メール扱いになる場合があります。
- もしメール送信ができない環境の場合は、システム管理者がアカウント管理画面から直接パスワードを再設定することもできます(アカウント管理)。
クヌギスキーマ でできること(概要)
左サイドバーで全機能ページにアクセスできます。下記は主な機能のショートカットです。
動作要件(最小限)
| 項目 | 要件 |
|---|---|
| PHP | 8.1 以上(PDO_SQLITE / mbstring / json / curl / dom が有効) |
| Web サーバ | Apache 2.4+(mod_rewrite が有効)。Nginx でも動きますが .htaccess 相当を別途設定してください |
| SQLite | 3.34 以上(PHP に同梱されているもので可) |
| 外部到達性 | クロール対象 URL(自社サイト)への HTTPS アウトバウンド |
| cron | 1 時間に 1 回 php cron/run_cron.php を回す(任意・推奨。例: 0 * * * *) |
mod_rewrite + SQLite 同梱)でそのまま動作します。Cron も Xserver サーバーパネルの「Cron 設定」から GUI で登録できます(インストール方法 → Xserver での Cron 設定例を参照)。