コマンドラインツール (toolsディレクトリ配下のスクリプト)

「PowerCMSX/tools」ディレクトリ配下にあるファイルは、コマンドラインインターフェイス(PHP CLI)で実行するためのPHPスクリプトです。各スクリプトの役割と実行方法を説明します。

worker.php

期限切れキャッシュのクリアや予約公開・予約非公開・予約差し替え、キューの実行など、PowerCMS X の実行に必要な処理を行います。サーバーの cron またはタスクスケジューラで定期的に実行するように設定します。推奨の実行間隔は15分です。

処理と Web サーバーの PHP との双方でディレクトリやファイルの作成や削除が可能となるよう、Web サーバーの PHP 実行ユーザーと同じユーザーもしくは同じ所属グループの権限で実行させてください。

オプション引数を付けることで実行する処理を絞ったり、除外することができます。指定できるオプションについては下記のページを参照してください。

rebuildFiles.php

静的ファイルをすべてパブリッシュします。すでにファイルが存在していて、内容に変更がない場合は上書きされません。

処理と Web サーバーの PHP との双方でディレクトリやファイルの作成や削除が可能となるよう、Web サーバーの PHP 実行ユーザーと同じユーザーもしくは同じ所属グループの権限で実行してください。

指定できるオプション引数は以下のとおりです。

  • 引数なし : すべてを対象に再構築およびファイル出力を行います。
  • archive : アーカイブのみを対象にします (アセットやバイナリカラムのファイルは対象外となります)。
  • file : アセットやバイナリカラムのファイルのみを対象とします (上記の逆)。
  • --urlmapping_ids : 引数 archive とあわせて指定します。再構築対象の URLマップのIDをカンマ区切りで指定します。
  • --urlinfo_ids : 引数 archive とあわせて指定します。再構築対象の URLオブジェクトのIDをカンマ区切りで指定します。
  • --object_ids, --model : 引数 archive とあわせて指定します。再構築対象のオブジェクトのIDをカンマ区切りで指定し、モデル名を--modelに指定します。
  • --objects : 「モデル名_オブジェクトID」の形でカンマ区切りで指定します。
  • --limit : 再構築またはファイル出力する件数の上限を指定します。
  • --offset : 再構築またはファイル出力をスキップする件数を指定します。

--limit, --offsetは、file指定の場合はモデルごとの件数指定となります。

cd path/to/PowerCMSX
php ./tools/rebuildFiles.php archive --urlmapping_ids 2; # URLマップIDが「2」のアーカイブを再構築
php ./tools/rebuildFiles.php archive --object_ids 1,2,3 --model entry; # 記事IDを指定して複数の記事を再構築
php ./tools/rebuildFiles.php archive --objects entry_1,entry_2,entry_3; # 上記と同じ( 記事IDを指定して複数の記事を再構築 )

restoreMenu.php

環境移行などの際に URL オブジェクトを削除してから rebuildFiles.php を使ってファイルをパブリッシュした後に「メニュー」オブジェクトに関連づいた URL をリセットするために利用します。

指定できる引数は以下のとおりです。

  • --verbose : 結果を標準出力に表示します。

test.php

アプリケーションディレクトリ配下の拡張子が「.php」「.tmpl」「.json」のファイルに対してチェックを行います。

  • PHP ファイル : コンパイルチェックを実行します。
  • テンプレートファイル : テンプレート構文をチェックします(閉じタグの不足などを指摘します)。
  • JSON ファイル : JSON として妥当な書式かどうかをチェックします。

rebuildOptimizer.php

ポップアップウィンドウで再構築する際に、モデルごと、スコープごとに1リクエストあたりの再構築単位を自動で設定するものです。
デフォルトで有効になっていますので、追加で環境変数「performance_logging」に true を指定してください。「performance_logging_threshold」の初期値は 1.0 秒で、1秒以上再構築に時間を要したログが記録されます。最適化は夜間に worker.php によって自動的に行われますが、手動で設定を行う時に、このスクリプトを利用します。

  • 環境変数「performance_logging」に「true」を指定する
  • ポップアップウィンドウから再構築を実行する (必要に応じて数回繰り返す)
  • 環境変数「log_dir」で指定したディレクトリ (既定では PowerCMSX/log) にファイル「performance.log」が生成されていることを確認する
cd path/to/PowerCMSX && sudo -u apache php ./tools/rebuildOptimizer.php --verbose
  • 実行後、定期的に最適化を行う必要がなければ環境変数「performance_logging」を削除し、「performance.log」を削除してください。

thumbnails_c.php

以下の環境変数の指定をインストール後に指定した時、画像の静的サムネイルを生成します。

変数名 説明 初期値
assets_c (フルパス)指定のある時、一覧画面用のサムネイルを静的画像ファイルとして生成します。 指定なし
assets_c_path 一覧画面用のサムネイルを静的画像として生成している時、管理画面上でのURLルート相対パスを指定します。 指定なし

upgrader.php

管理画面にスキーマアップグレードのアナウンスが出ている時、管理画面からではなく、コマンドラインからスキーマのアップグレードを行います。※ ver.3.02以降で利用可能になります。

指定できる引数は以下の通りです。

  • --models : 対象のモデル名をカンマ区切りで指定します。
cd path/to/PowerCMSX && php ./tools/upgrader.php --models asset,keyword

backupSQL.php

データベースをバックアップします。あらかじめ下記の環境変数の設定が必要です。

変数名 説明 初期値
mysqldump_path mysqldump コマンドのパスを指定します。 なし
backup_compress ダンプファイルの圧縮方法を指定します。指定できるのは gz または zip です。 gz
backup_dir バックアップファイルの保存先ディレクトリを指定します。 指定なし
backup_rotate cron などで定期実行する時にバックアップする世代を指定します。 1

restoreSQL.php

データベースのバックアップからデータベースを復元します。予め下記の環境変数の設定が必要です。

変数名 説明 初期値
mysql_path mysql コマンドのパスを指定します。 なし

実行時は引数の指定の仕方に注意してください。

cd path/to/PowerCMSX && php ./tools/restoreSQL.php --file=/path/to/sqldump.sql.gz

PADO/convertBlob2File.php

db-config.php に以下のように指定することで、BLOB (バイナリ) 型のカラムに保存する代わりに別ファイルに保存して管理することができます。インストール以降にこの設定を行った時、すでに保存されたバイナリデータをファイルに出力する必要があり、その際に実行します。実行中は管理画面操作や worker.php の定期実行を止めてください。処理と Web サーバーの PHP との双方でディレクトリやファイルの作成や削除が可能となるよう、Web サーバーの PHP 実行ユーザーと同じユーザーもしくは同じ所属グループの権限で実行してください。

define( 'PADO_DB_BLOB2FILE', true );
define( 'PADO_DB_BLOBPATH', '/path/to/blob' );

PADO/convertFile2Blob.php

上記とは逆に、外部保存からバイナリカラムに保存するように途中で設定を変更した時に実行します。実行中は管理画面操作や worker.php の定期実行を止めてください。処理と Web サーバーの PHP との双方でディレクトリやファイルの作成や削除が可能となるよう、Web サーバーの PHP 実行ユーザーと同じユーザーもしくは同じ所属グループの権限で実行してください。

PADO/cleanupBlobs.php

PADO_DB_BLOB2FILE の設定が有効な時、削除済みレコードに対応しているファイルなどが残る可能性があり、それらのファイルを整理する時に実行します。

PADO/compressDB.php

InnoDBの圧縮テーブルの設定を行った後に実行します。以下のドキュメントを参照ください。