保存場所
設定ファイルはKUSANAGIのプロファイルディレクトリ内の以下のパスに保存されています。
(a) ユーザがカスタマイズするユーザ設定ファイル
wexal/userdir/pst.config.yaml
(b) Page Speed Technologyが自動生成するプロファイル設定ファイル(本番用)
wexal/pst.config.yaml
(c) Page Speed Technologyが自動生成するプロファイル設定ファイル(ステージング用)
wexal/pst.stg.config.yaml
(d) Davidが作成する設定ファイル(pst ai configコマンド実行により作成)
wexal/David.config.yaml
(e) Davidが作成する設定ファイル(クラスターごとに設定を集約したもの。pst ai configコマンド実行により作成)
wexal/David.cluster.数字.config.yaml
カスタマイズは (a) ユーザ設定ファイル、(c) プロファイル設定ファイル(ステージング用)、(d) Davidが作成する設定ファイル、(e) Davidが作成する設定ファイル(クラスターごと)に対して行います。
カスタマイズした内容は、設定ファイルの記述に誤りがないか確認した上でPage Speed Technologyが (b) プロファイル設定ファイル(本番用)に反映します。
以降の説明では、特に記述のない限り設定ファイルは (a) ユーザがカスタマイズするユーザ設定ファイルを指します。
※注意事項※
プロファイル設定ファイルは直接編集しないでください。
記述に誤りがあった場合には、Webサイトが表示されないといった不具合が出ることがあります。
編集方法
pst edit_configコマンドによる編集
pst edit_configコマンドを実行し、エディタを起動して設定ファイルをカスタマイズします。
編集終了後に設定ファイルの記述に誤りがない場合は、設定ファイルよりプロファイル設定ファイル(ステージング用)を自動生成します。設定ファイルの内容は即座に反映されます。
設定ファイルの記述に誤りがあった場合は、プロファイル設定ファイルは自動生成されません。編集前の設定が継続して有効となります。
その後、pst makeコマンドを実行することにより、ステージング用設定ファイルが、本番用設定ファイルに反映されます。
pst edit --productionコマンドによる編集
pst edit --productionコマンドを実行した場合、ステージング用設定ファイルではなく、本番用設定ファイルに反映します。
別の方法で設定ファイルを編集して、pst make_configコマンドで反映
設定ファイルをダウンロードしてカスタマイズするなど、別の方法で設定ファイルを編集することもできます。
カスタマイズした設定ファイルをアップロードした場合は、pst make_configコマンドを実行します。
アップロードした設定ファイルの記述に誤りがない場合は、設定ファイルよりプロファイル設定ファイルを自動生成します。設定ファイルの内容は即座に反映されます。
設定ファイルの記述に誤りがあった場合は、プロファイル設定ファイルは自動生成されません。編集前の設定が継続して有効となります。
設定の書式
pst設定ファイルは YAML で書かれています。
YAMLの基本的なフォーマットは、YAMLの解説を参照してください。
YAML
本項ではPage Speed Technologyで記述するノードを解説します。
pst
Page Speed Technologyを制御します。
型
スカラー
値
on
有効にします
off
無効にします
例
pst: on
watch
Page Speed Technologyのプロファイル監視プロセスを制御します。
型
スカラー
値
on
サーバの起動時に自動的にプロファイル監視プロセスを起動します。
off
サーバの起動時に自動的にプロファイル監視プロセスを起動しません。
例
watch: on
tdir
Page Speed TechnologyのプロファイルディレクトリにあるDocumentRootを指定します。
pst initコマンドで自動的に設定されるので、基本的に変更は不要です。
型
スカラー
値
プロファイルディレクトリ /DocumentRoot
例
tdir: /home/kusanagi/profile/DocumentRoot
odir
Page Speed Technologyで参照するオリジナルコンテンツへのシンボリックリンク名を指定します。
pst initコマンドで自動的に設定されるので、基本的に変更は不要です。
型
スカラー
値
_wexal
例
odir: _wexal
timezone
Page Speed Technologyが参照するタイムゾーンを指定します。
型
スカラー
値
タイムゾーン 書式はtzselectコマンドで調べることができます。
例
timezone: Asia/Tokyo
protocol
Page Speed Technologyを適用するプロトコルを指定します。
型
スカラー
値
http
HTTPで適用します。
https
HTTPSで適用します。httpsを指定する際は、HTTPからHTTPSに対する301リダイレクトを合わせて設定してください。リダイレクトの設定は、kusanagi sslコマンドを参照してください。
例
protocol: http
conf
Page Speed Technologyの設定ファイルのエディタ・書式を指定します。
型
マッピング
値
ノード | 説明 | 型 | 値 |
---|---|---|---|
editor | pst edito_configで使用するエディタを指定します。 | スカラー | vim:vimを使用します コマンド:使用するエディタのコマンド名を指定します |
format | Page Speed Technologyの設定ファイルの書式を指定します。 | スカラー | yaml:YAMLを使用します。 ユーザ設定ファイルは wexal/userdir/pst.config.yaml になります。php:phpを使用します。 ユーザ設定ファイルは wexal/userdir/make.config.php になります。 |
例
conf:
editor: vim
format: yaml
options
Page Speed Technologyの最適化で使用するディレクティブの種類を指定します。
型
シーケンス
値
lua
luaディレクティブを使用します。
指定されていない場合、luaノードに書かれたディレクティブは無効になります。
wp
wpディレクティブを使用します。
指定されていない場合、wpノードに書かれたディレクティブは無効になります。
apply_logged_in_user
ログイン中のユーザのセッションに対してPage Speed Technologyの最適化を有効にするか指定します。
指定されていない場合、ログイン中のユーザのセッションに対しては無効になります。
例
options:
- lua
- wp
global_exclude
Page Speed Technologyの最適化対象に含めないディレクトリを指定します。
型
シーケンス
値
パス
KUSANAGIのプロファイルのDocumentRoot (tdirノードの値) からの絶対パスで指定します。
例
global_exclude:
- /_wexal
- ~$
- /\.
- /wp-admin
- /wp-includes
- /wp-content/upgrade
- /wp-content/plugins
watch_additional_exclude
Page Speed Technologyのプロファイル監視プロセスで最適化対象に含めないディレクトリを指定します。
watch_additional_excludeに指定したディレクトリは、プロファイル監視プロセスの最適化対象にはなりませんが、スケジュール実行の対象にはなります。
逐次最適化の必要はなく、バッチ処理で最適化を行うディレクトリを指定してください。
型
シーケンス
値
パス
KUSANAGIのプロファイルのDocumentRoot (tdirノードの値) からの絶対パスで指定します。
例
watch_additional_exclude:
- /wp-content/uploads
lua
Page Speed Technologyの最適化で使用するluaディレクティブを指定します。
luaディレクティブはプロファイルで動作する全てのCMSに対して有効です。
luaディレクティブを参照してください。
型
マッピング
値
ノード | 説明 | 型 | 値 |
---|---|---|---|
dynamic | luaディレクティブを動的に生成します。WebサーバがNginxの場合のみ使用できます。 | マッピング | 以下の表を参照 |
fcache | luaのオン・メモリキャッシュ(L-Cache)を制御します。L-CacheはWebサーバがNginxの場合、かつ、F-Cacheが有効な場合のみ使用できます。 | マッピング | 以下の表を参照 |
header_filter | HTTPヘッダを出力するタイミングで実行するluaディレクティブを指定します。 | シーケンス | luaディレクティブを指定します。 |
body_filter | HTTPレスポンスボディを出力するタイミングで実行するluaディレクティブを指定します。 | シーケンス | luaディレクティブを指定します。 |
dynamicの値
ノード | 説明 | 型 | 値 |
---|---|---|---|
enable | luaディレクティブの動的生成の有効・無効を指定します。 | スカラー | 0: 無効、 1: 有効、デフォルトは無効です。 |
exptime | 動的に生成したluaディレクティブの有効期間を秒で指定します。 | スカラー | 有効期間(秒)、デフォルトは3600秒です。 |
config | luaディレクティブを動的に生成する際のオプションを指定します。pst ai configコマンドのオプションを指定できます。 | マッピング | pst ai configコマンドのオプションを参照 |
fcacheの値
ノード | 説明 | 型 | 値 |
---|---|---|---|
enable | L-Cacheの有効・無効を指定します。 | スカラー | 0: 無効、 1: 有効、デフォルトは無効です。 |
exptime | L-Cacheの有効期間を秒で指定します。 | スカラー | 有効期間(秒)、デフォルトは60秒です。 |
例
lua:
header_filter:
- cmd: add
args:
- 'page-speed-technology: on'
body_filter:
- cmd: shorten url
worker
Page Speed Technologyのコンテンツ最適化の方法を設定します。
workerディレクティブはプロファイルで動作する全てのCMSに対して有効です。
workerディレクティブを参照してください。
※注意事項※
workerディレクティブの変更を反映するには、プロファイル監視プロセス (watch) と最適化実行プロセス (runner) の再起動が必要です。
pst watch restart と pst runner restart を実行してください。
型
マッピング
値
ノード | 説明 | 型 | 値 |
---|---|---|---|
img | Page Speed Technologyの画像最適化の方法を設定します。 値を変更したときは、pst opt_imageコマンドで画像最適化を実行してください。 このキーが存在しない場合は、画像最適化をしません。 |
マッピング | 以下の表を参照 |
css | Page Speed Technologyのスタイルシート最適化の方法を設定します。 値を変更したときは、pst opt_cssコマンドでスタイルシート最適化を実行してください。 このキーが存在しない場合は、スタイルシート最適化をしません。 |
シーケンス | workerディレクティブを指定します。 |
js | Page Speed TechnologyのJavaScript最適化の方法を設定します。 このキーが存在しない場合は、JavaScript最適化をしません。 |
シーケンス | workerディレクティブを指定します。 |
imgの値
ノード | 説明 | 型 | 値 |
---|---|---|---|
"" | デフォルトの画像最適化の方法を指定します。 | シーケンス | workerディレクティブを指定します。 |
.webp | WebPをサポートするブラウザでは、画像最適化としてWebP画像フォーマットを有効化します。 このキーが存在しない場合は、WebP画像フォーマットを使用しません。 |
シーケンス | workerディレクティブを指定します。 |
.jp2 | JPEG 2000をサポートするブラウザでは、画像最適化としてJPEG 2000画像フォーマットを有効化します。 このキーが存在しない場合は、JPEG 2000画像フォーマットを使用しません。 |
シーケンス | workerディレクティブを指定します。 |
.jxr | JPEG XRをサポートするブラウザでは、画像最適化としてJPEG XR画像フォーマットを有効化します。 このキーが存在しない場合は、JPEG XR画像フォーマットを使用しません。 |
シーケンス | workerディレクティブを指定します。 |
例
worker:
img:
"": []
.webp: []
.jp2: []
.jxr: []
css: []
js: []
wp
Page Speed Technologyの最適化で使用するwpディレクティブを指定します。
wpディレクティブはプロファイルで動作するCMSがWordPressのときに有効です。
wpディレクティブを参照してください。
型
マッピング
値
ノード | 説明 | 型 | 値 |
---|---|---|---|
wexal_init | WordPressのinitアクションフックのタイミングで実行するwpディレクティブを指定します。 initアクションフックは、WordPressのロードが完了してHTTPヘッダを出力する直前に発生します。 通常はプラグインなどの初期化に使われます。 |
シーケンス | wpディレクティブを指定します。 |
wexal_head | WordPressのwp_headアクションフックのタイミングで実行するwpディレクティブを指定します。 wp_headアクションフックは、一般的にユーザテーマの<head></head>タグの前後で実行されるフックです。 |
シーケンス | wpディレクティブを指定します。 |
wexal_footer | WordPressのwp_footerアクションフックのタイミングで実行するwpディレクティブを指定します。 wp_footerアクションフックは、一般的にユーザテーマの</body>タグの前後で実行されるフックです。 |
シーケンス | wpディレクティブを指定します。 |
wexal_enqueue_opt | WordPressのwp_enqueue_scriptsアクションフックのタイミングで実行するwpディレクティブを指定します。 wp_enqueue_scriptsアクションフックは、プラグインやテーマのスクリプトとスタイルの処理を行うために一般的に使われるフックです。 |
シーケンス | wpディレクティブを指定します。 |
wexal_flush | WordPressの処理が完了し、phpからWebサーバへレスポンスボディを送信する直前のタイミングで実行するwpディレクティブを指定します。 | シーケンス | wpディレクティブを指定します。 |
例
wp:
wexal_init: []
wexal_head: []
wexal_enqueue_opt: []
wexal_footer: []
wexal_flush:
- cmd: server push external css
cron
Page Speed Technologyのスケジュール実行の方法を設定します。
型
マッピング
値
ノード | 説明 | 型 | 値 |
---|---|---|---|
job | Page Speed Technologyでスケジュール実行する内容を記述します。 | シーケンス | 以下の表を参照 |
jobの値
ノード | 説明 | 型 | 値 |
---|---|---|---|
cmd |
1.4.7.追加Page Speed Technologyでスケジュール実行するpstコマンドを指定します。 使用できるpstコマンドは以下です:opt opt_image opt_css opt_js uncss bcache fcache ai config |
スカラー | pstコマンドを指定します。 |
args | Page Speed Technologyでスケジュール実行するpstコマンドのパラメタを指定します。 | シーケンス | pstコマンドのパラメタを指定します。 |
schedule | Page Speed Technologyでスケジュール実行する条件を指定します。 crontabと同様の書式を使用できます。例えば、'*'は全てに一致します。'*/10'のように10毎という記述、'5-20'のような範囲指定、'1,3,5,7,11'のようなカンマ区切りによる複数指定も可能です。 |
シーケンス | 1番目から順番に、分、時、日、月、曜日の各条件を指定します。 |
例
cron:
job:
- cmd: opt_image
args:
- '/'
- '--force'
schedule:
- '0'
- '3'
- '*'
- '*'
- '0'
overrides
上部で指定したPSTの設定を上書きします。
型
マッピング
値
ノード | 説明 | 型 | 値 |
---|---|---|---|
name | 識別子です。 | スカラー | 重複した場合、後で設定したものが有効になります。 |
device | 設定を上書きしたいdeviceを指定します。 | スカラー | pcか、mobileの値を指定します。 |
path | 設定を上書きしたいpathを指定します。 | スカラー | 正規表現が使えます。 |
if | 設定を上書きしたい条件を指定します。 | スカラー | 1を指定すると、すべての場合に対して上書きを有効化します。 |
node | ディレクティブの種類を指定します。 | スカラー | optionsの値と同じです。luaかwpを指定します。 |
patch | 上部で指定したPSTの設定との差分を表示します。 | シーケンス | 差分を表示しているだけですので、patchの記述はPSTの設定に影響を与えません。なお、表記はjsonpatchに従います。 |
applied | 上部で指定したPSTの設定を上書きする内容を指定します。 | シーケンス | 指定方法は、各ディレクティブの指定方法と同じです。 |
diff | pst.david.config.yamlとの差分を表示します。 | シーケンス | 差分を表示しているだけですので、diffの記述はPSTの設定に影響を与えません。なお、表記はjsondiffに従います。また、clusterの設定ファイルで表示されます。 |
例
overrides:
- name: mobile pages
device: mobile
path: .
if: 1
node:
- lua
patch:
- op: remove
path: /lua/body_filter/2/args/scripts/24
- op: replace
path: /lua/body_filter/2/args/scripts/10/type
value: 'js [ jQuery is found in body ]'
- op: add
path: /lua/body_filter/2/args/scripts/1/method
value: webfont
applied:
lua:
fcache:
enable: 0
exptime: 60
header_filter:
- cmd: wp remove header
body_filter:
- cmd: wp shorten url
url
一意なURLとして認識させたいQuery Stringを指定します。
Page Speed Technologyでは基本的にQuery Stringを省いたURLを一意のURLとして認識します。しかしQuery Stringによって異なるページが生成される場合など、Query Stringによって異なる最適化を行いたい場合に使用します。
Page Speed Technologyは、指定されたQuery Stringのキーと値にマッチするものを残して、一意のURLを生成するようになります。
複数のQuery Stringを指定した場合は OR 条件となります。
型
マッピング
値
ノード | 説明 | 型 | 値 |
---|---|---|---|
Query Stringのキー | Query Stringのキーを指定します。 | スカラー | Query Stringのキーは完全一致する必要があります。 |
Query Stringのキーの値
ノード | 説明 | 型 | 値 |
---|---|---|---|
Query Stringの値 | Query Stringの値を指定します。 | スカラー | Query Stringの値を正規表現で指定します。 |
例
url:
user: .
group: ^wp-