swversion.inc.php

swversion.inc.php - PukiWiki Service Worker Cache Version Manager
PukiWikiサイトにService Workerを導入している場合に、キャッシュバージョンを簡単に管理できるプラグインです。
概要
WEB高速化のためのService Workerのキャッシュバージョンを管理画面から簡単に更新できるプラグイン。CSS/JavaScript更新時にワンクリックでバージョン番号を自動生成し、訪問者のブラウザキャッシュを確実に更新させます。
Pukiwikiにsw.jsを実装しておくと、各ページで共通の要素(たとえば<header>と<footer>で使われている画像ファイルやCSSなど)を訪問者のローカルにキャッシュさせることで、2回目からのアクセスを驚異的に高速化させます。Service Workerを使ってサイトを高速化している場合、CSS/JavaScriptファイルを更新したときにキャッシュバージョンも更新する必要があります。このプラグインを使うと、ブラウザ上でワンクリックでキャッシュバージョンを更新できます。
ダウンロード先

機能
- ブラウザ上で簡単更新: 管理画面からボタン一つでキャッシュバージョンを更新
- 自動バージョン生成: 日時ベース(YYYYMMdd-HHiiss形式)で自動生成
- 現在の状態を確認: 現在のキャッシュバージョンとキャッシュ対象ファイルを一覧表示
- セキュリティ: Basic認証とPKWK_READONLYモードでアクセス制御
インストール方法
必要なファイルを配置
以下の3つのファイルをPukiWikiに配置します:
/sw.js # Service Workerファイル(ルートディレクトリ) /skin/pukiwiki.skin.php # Service Worker登録コード付きskinファイル /plugin/swversion.inc.php # このプラグイン
ファイルの配置場所
- sw.js: PukiWikiのルートディレクトリ(index.phpと同じ場所)に配置
- pukiwiki.skin.php: /skin/ディレクトリに配置(既存ファイルを上書き)
- swversion.inc.php: /plugin/ディレクトリに配置
動作確認
ブラウザで以下のURLにアクセスします(Basic認証でログインした状態で):
https://your-site.com/?plugin=swversion
管理画面が表示されれば成功です。
使い方
管理画面にアクセス
https://your-site.com/?plugin=swversion
Basic認証でログインしている必要があります。
現在の状態を確認
管理画面には以下の情報が表示されます:
- Cache Version: 現在のキャッシュバージョン(例: 20251027-143052)
- SW File Path: sw.jsファイルのパス
- Cached Resources: キャッシュされているファイルの一覧
キャッシュバージョンを更新
- 「Update Cache Version Now」ボタンをクリック
- 確認ダイアログで「OK」をクリック
- 完了メッセージが表示されます
更新の確認
- 新しいバージョン番号が表示されます(例: 20251027-154230)
- この時点で訪問者のブラウザは次回アクセス時に新しいキャッシュをダウンロードします
運用フロー
CSS/JavaScriptを更新した場合
- 通常通りCSS/JavaScriptファイルを編集・アップロード
- ブラウザで ?plugin=swversion にアクセス
- 「Update Cache Version Now」ボタンをクリック
- 完了
これで訪問者のブラウザに新しいファイルが配信されます。
デザイン変更時の推奨手順
- CSSファイルを編集
- サーバーにアップロード
- ?plugin=swversion でキャッシュバージョン更新
- 自分のブラウザでキャッシュクリアして確認
- 完了
セキュリティ
アクセス制御
- PKWK_READONLY モード: 読み取り専用モードでは実行不可
- Basic認証: 管理者のみアクセス可能
- 確認ダイアログ: 誤操作防止のため更新時に確認
ファイル書き込み権限
sw.jsファイルに書き込み権限が必要です。パーミッションを確認してください:
chmod 644 sw.js
Webサーバーのユーザー(通常は www-data や apache)が書き込める必要があります。
トラブルシューティング
「Error: sw.js file not found」と表示される
原因: sw.jsファイルが正しい場所にありません
解決方法:
- sw.jsファイルがPukiWikiのルートディレクトリ(index.phpと同じ場所)にあるか確認
- パスが /path/to/pukiwiki/sw.js になっているか確認
「Failed to write to sw.js file」と表示される
原因: sw.jsファイルに書き込み権限がありません
解決方法:
chmod 644 sw.js chown www-data:www-data sw.js # Webサーバーのユーザーに合わせる
「Prohibited by admin (READONLY mode)」と表示される
原因: PukiWikiが読み取り専用モードになっています
解決方法:
- pukiwiki.ini.php で $pkwk_readonly = 0; に設定
- または一時的に読み取り専用モードを解除
Service Workerが動作しない
確認事項:
- sw.jsの配置場所: ルートディレクトリ(/sw.js)にあるか
- HTTPSか: Service WorkerはHTTPS必須(localhostは例外)
- ブラウザの対応: モダンブラウザ(Chrome, Firefox, Safari, Edge)を使用
- Console確認: ブラウザのDevToolsでエラーメッセージを確認
ブラウザのDevTools (F12) → Console で以下のメッセージが出れば成功:
Service Worker registered with scope: https://your-site.com/
キャッシュが更新されない
訪問者側での確認:
- ブラウザのキャッシュをクリア(Ctrl+Shift+Delete)
- スーパーリロード(Ctrl+Shift+R または Cmd+Shift+R)
- DevTools → Application → Service Workers で「Update」をクリック
管理者側での確認:
- ?plugin=swversion でバージョンが更新されているか確認
- sw.jsファイルを直接開いて CACHE_VERSION の値を確認
カスタマイズ
キャッシュ対象ファイルの追加
sw.jsファイルを編集して、STATIC_CACHE_URLS 配列にファイルを追加します:
const STATIC_CACHE_URLS = [ '/skin/pukiwiki.css', '/skin/main.js', '/image/pukiwiki.png', // 追加したいファイル '/skin/custom.css', '/image/logo.png' ];
バージョン番号の形式変更
プラグイン内の以下の行を編集します(swversion.inc.php の48行目付近):
// 現在: YYYYMMdd-HHiiss 形式
$new_version = date('Ymd-His');
// 例: YYYYMMDD-vN 形式にしたい場合
$new_version = date('Ymd') . '-v' . time();
ファイル構成
your-pukiwiki/
├── index.php
├── sw.js # Service Workerファイル(このプラグインが更新)
├── skin/
│ └── pukiwiki.skin.php # Service Worker登録コード含む
└── plugin/
└── swversion.inc.php # このプラグイン
動作環境
- PukiWiki: 1.5.3以降
- PHP: 7.0以降
- Webサーバー: Apache, Nginx等
- SSL/TLS: HTTPS必須(Service Worker要件)
ライセンス
GPL v2 or (at your option) any later version
関連リンク
バージョン履歴
- 1.0.0 (2025-10-27): 初回リリース
- 基本機能実装
- 日時ベースのバージョン自動生成
- 管理画面UI
- セキュリティチェック
Note: このプラグインはService Workerを導入済みのPukiWikiサイト専用です。Service Workerを導入していない場合は、まず sw.js と pukiwiki.skin.php を配置してください。
関連記事
この記事に対するコメント
このページには、まだコメントはありません。
更新日:2025-10-27 閲覧数:401 views.