Grav command

Grav には組み込みのコマンドラインインターフェイス (CLI) があり、 bin/grav で見つけることができます。CLI は、キャッシュのクリアバックアップ** などの定期的なタスクを実行するのに非常に便利です。

CLIへのアクセスは簡単ですが、ターミナルを使用する必要があります。 MacではTerminal、Windowsではcmd、Linuxでは単なるシェルと呼ばれるものです。UNIXスタイルのコマンドはWindowsのcmdではネイティブに利用できません。Windows マシンに msysgit パッケージをインストールすると、 Git と Git BASH が追加され、UNIX コマンドを利用できる代替コマンドプロンプトになります。 サーバーにリモートでアクセスする場合、ほとんどの場合、サーバーにリモートでログインするためにSSHを使用することになるでしょう。 SSHの詳細については、こちらのGreat tutorial for more information on SSHをチェックしてください。

CLI に依存することで手動で実行できる操作もありますが、これらの作業は毎日実行される cronjobs によって自動化することができます。

Grav で利用できる全コマンドの一覧を取得するには、以下のコマンドを実行します。

bin/grav list

というような表示がされるはずです。

[version=15]

Available commands:
  backup       Creates a backup of the Grav instance
  clean        Handles cleaning chores for Grav distribution
  clear-cache  [clearcache] Clears Grav cache
  composer     Updates the composer vendor dependencies needed by Grav.
  help         Displays help for a command
  install      Installs the dependencies needed by Grav. Optionally can create symbolic links
  list         Lists commands
  new-project  [newproject] Creates a new Grav project with all the dependencies installed
  sandbox      Setup of a base Grav system in your webroot, good for development, playing around or starting fresh
  security     Capable of running various Security checks

[/version]

[version=16,17]

Available commands:
  backup       Creates a backup of the Grav instance
  cache        [clearcache|cache-clear] Clears Grav cache
  clean        Handles cleaning chores for Grav distribution
  composer     Updates the composer vendor dependencies needed by Grav.
  help         Displays help for a command
  install      Installs the dependencies needed by Grav. Optionally can create symbolic links
  list         Lists commands
  logviewer    Display the last few entries of Grav log
  new-project  [newproject] Creates a new Grav project with all the dependencies installed
  sandbox      Setup of a base Grav system in your webroot, good for development, playing around or starting fresh
  scheduler    Run the Grav Scheduler.  Best when integrated with system cron
  security     Capable of running various Security checks

[/version]

特定のコマンドのヘルプを得るには、コマンドの前に help を付けます。

bin/grav help install

Backup

[version=15]
プロジェクトのバックアップは、Grav の ROOT のアーカイブを作成することにほかなりません。データベースもなく、複雑なこともありません。

もちろん、Grav CLI を使用することでさらに簡素化することができます。例えば、~/workspace/portfolio プロジェクトがあり、そのバックアップを作成したい場合、以下のようにします。

cd ~/workspace/portfolio
bin/grav backup

プロジェクトの backup/ フォルダに新しいバックアップファイル portfolio-20140812174352.zip が作成されます。名前の後の長い数字は、year month day hour minute second でフォーマットされた日付です。

[/version]
[version=16,17]
Grav バックアップシステムは Grav 1.6 で完全に刷新され、複数のバックアッププロファイルをサポートするようになりました。 これらのプロファイルは user/config/backups.yaml で設定されます。 カスタム設定ファイルがない場合、Grav は system/config/backups.yaml で提供されるデフォルトの設定ファイルを使用します。

Grav が複数のバックアッププロファイルを検出した場合、CLI コマンドでバックアップするプロファイルを選択するように促されます。

cd ~/workspace/portfolio
bin/grav backup

Grav Backup
===========

Choose a backup?
  [0] Default Site Backup
  [1] Pages Backup

Alternatively you can pass an index of the profile directly:

$ cd ~/workspace/portfolio
bin/grav backup 1

Archiving 36 files [===================================================] 100% < 1 sec Done...

 [OK] Backup Successfully Created: /users/joe/workspace/portfolio/backup/pages_backup--20190227120510.zip

More information on the backup functionality can be found in the Advanced -> Backups section.
[/version]

Clean

このCLIコマンドは、主にパッケージ構築時に使用され、Grav から余計なファイルやフォルダを削除します。 このコマンドは、Grav パッケージのビルドに使用しない限り、 ** 使用しないことを強くお勧めします。

bin/grav clean

Clear-Cache

キャッシュを消去するには、cache/ 以下のファイルやフォルダをすべて削除します。

The equivalent CLI command is:

[version=15]

$ cd ~/webroot/my-grav-project
bin/grav clear-cache

互換性を保つために、いくつかのエイリアス (clear-cache, clearcache, clear) が存在します。

デフォルトのオプションは標準のキャッシュクリア処理ですが、以下のオプションでさらに制御することができます。

--all             コンパイル済み、twig、doctrine のキャッシュを含むすべてのキャッシュを削除します。
--assets-only     assets/* を削除します。
--images-only     images/* を削除します。
--cache-only      cache/* を削除します。
--tmp-only        tmp/* を削除します。

[/version]

[version=16,17]

$ cd ~/webroot/my-grav-project
bin/grav cache

There are several aliases for compatibility (cache, cache-clear, clearcache, clear).

The default option is the standard cache clearing process however, you can control this further with these options:

--purge           古いキャッシュをパージします。
--all             コンパイル済み、twig、doctrine のキャッシュを含むすべてのキャッシュを削除します。
--assets-only     assets/* を削除します。
--images-only     images/* を削除します。
--cache-only      cache/* を削除します。
--tmp-only        tmp/* を削除します。

[/version]

Composer

GitHub 経由でGravをインストールし、composer ベースのベンダーパッケージを手動でインストールしている場合、で簡単にアップデートすることができます。

bin/grav composer

また、install などの composer オプションも渡すことができます。

bin/grav composer --install

または、

bin/grav composer --update

これらはすべて --no-dev という composer オプションを使っているので、テストを行うにには直接、bin/composer.phar` を使ってください。

Install

Gravが依存するもの(error plugin、problems plugin、antimatter themeをインストールするには、terminal または console を起動し、依存関係をインストールしたい grav フォルダに移動して CLI コマンドを実行してください。

$ cd ~/webroot/my-grav-project
bin/grav install

これで、依存関係が以下のようにインストールされたはずです。

  • ~/webroot/my-grav-project/user/plugins/error
  • ~/webroot/my-grav-project/user/plugins/problems
  • ~/webroot/my-grav-project/user/themes/antimatter

[version=16,17]

Log Viewer

Grav 1.6 の一部として、新しい logviewer CLI コマンドが作成され、Grav のログを素早く見ることができるようになりました。

このコマンドの最も簡単な使用方法は、単にタイプすることです。

cd ~/webroot/my-grav-project
bin/grav logviewer

これは logs/grav.log ファイルの最後の20個のログエントリを出力します。 いくつかのオプションがあります。

-f, --file[=FILE]     custom log file location (default = grav.log)
-l, --lines[=LINES]   number of lines (default = 10)
-v, --verbose         verbose output including a stack trace if available

e.g.

bin/grav logviewer --lines=4                                                                           [12:27:20]

Log Viewer
==========

viewing last 4 entries in grav.log

2019-02-27 12:00:30 [WARNING] Plugin 'foo-plugin' enabled but not found! Try clearing cache with `bin/grav cache`
2019-02-27 12:04:57 [NOTICE] Backup Created: /Users/joe/my-grav-project/backup/default_site_backup--20190227120450.zip
2019-02-27 12:05:10 [NOTICE] Backup Created: /Users/joe/my-grav-project/backup/pages_backup--20190227120510.zip
2019-02-27 12:26:00 [NOTICE] Backup Created: /Users/joe/my-grav-project/backup/pages_backup--20190227122600.zip

[/version]

And verbose output with stack traces:

bin/grav logviewer -v                                                                                                       [16:12:12]

Log Viewer
==========

viewing last 20 entries in grav.log

2019-03-14 05:52:44 [WARNING] Plugin 'simplesearch.bak' enabled but not found! Try clearing cache with `bin/grav clear-cache`
2019-03-14 05:52:44 [CRITICAL] A function must be an instance of \Twig_FunctionInterface or \Twig_SimpleFunction.
0 /Users/joe/my-grav-project/plugins/acme-twig-filters/acme-twig-filters.php(52): Twig\Environment->addFunction(Object(Twig\TwigFilter))
1 /Users/joe/my-grav-project/vendor/symfony/event-dispatcher/EventDispatcher.php(212): Grav\Plugin\ACMETwigFiltersPlugin->onTwigInitialized(Object(RocketTheme\Toolbox\Event\Event), 'onTwigInitializ...', Object(RocketTheme\Toolbox\Event\EventDispatcher))
2 /Users/joe/my-grav-project/vendor/symfony/event-dispatcher/EventDispatcher.php(44): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'onTwigInitializ...', Object(RocketTheme\Toolbox\Event\Event))
3 /Users/joe/my-grav-project/vendor/rockettheme/toolbox/Event/src/EventDispatcher.php(23): Symfony\Component\EventDispatcher\EventDispatcher->dispatch('onTwigInitializ...', Object(RocketTheme\Toolbox\Event\Event))
4 /Users/joe/my-grav-project/system/src/Grav/Common/Grav.php(365): RocketTheme\Toolbox\Event\EventDispatcher->dispatch('onTwigInitializ...', Object(RocketTheme\Toolbox\Event\Event))
5 /Users/joe/my-grav-project/system/src/Grav/Common/Twig/Twig.php(175): Grav\Common\Grav->fireEvent('onTwigInitializ...')
6 /Users/joe/my-grav-project/system/src/Grav/Common/Processors/TwigProcessor.php(24): Grav\Common\Twig\Twig->init()
7 /Users/joe/my-grav-project/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(45): Grav\Common\Processors\TwigProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler))
8 /Users/joe/my-grav-project/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php(57): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest))
9 /Users/joe/my-grav-project/system/src/Grav/Common/Processors/AssetsProcessor.php(28): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest))

2019-03-14 05:52:46 [WARNING] Plugin 'simplesearch.bak' enabled but not found! Try clearing cache with `bin/grav clear-cache`
...

New Project

Grav で新しいプロジェクトを開始するときは、毎回、クリーンな Grav インスタンスで開始する必要があります。CLIを使えば、このプロセスは非常に簡単で、数秒しかかかりません。

  1. terminal または console を起動し、grav フォルダに移動します(このドキュメントでは、~/Projects/grav に存在するものとします)。
cd ~/Projects/grav
  1. Grav CLI を実行して新しいプロジェクトを作成します。作成先は、プロジェクトが存在する場所(通常は Web サーバーの webroot )になります。ここでは、portfolio を作成し、それを ~/Webroot/portfolio に置くと仮定します。
bin/grav new-project ~/webroot/portfolio

これは、新しい Grav インスタンスを作成し、必要なすべての依存関係をダウンロードします。

Sandbox

Grav には sandbox という気の利いたユーティリティがあり、Grav-installation の symlinked コピーを素早く作成することができます。簡単に言うと、bin/grav sandbox -s DESTINATION -ここで、"DESTINATION "はコピーしたインストールを置くフォルダーのパスです - 別のフォルダーにGrav-installationを再作成することができます。

実行例

bin/grav sandbox -s ../copy

現在のGravフォルダから copy という名前の兄弟フォルダを作成し、以下のフォルダを仮想コピーします: /bin, /system, /vendor, /webserver-configs, そして通常Gravのルートフォルダに存在する標準ファイルです。user にあるすべてのコンテンツは仮想ではなくカーボンコピーなので、コアファイルからオーバーヘッドを作成することなく、新しいインストールのカスタマイズを簡単に開始することができます。

[version=16,17]

Scheduler

Advanced -> Scheduler の項で説明したように、CLI コマンドでスケジューラーを監視することができます。

baseコマンドは、期限切れのスケジューラタスクを手動で実行します。

bin/grav scheduler

より詳細な情報を得るには、オプションで -v を指定して実行することができます。

bin/grav scheduler -v

Running Scheduled Jobs
======================

[2019-02-27T12:34:07-07:00] Success: Grav\Common\Cache::purgeJob
[2019-02-27T12:34:07-07:00] Success: Grav\Common\Cache::clearJob
[2019-02-27T12:34:07-07:00] Success: ls -lah

Other options include:

-i, --install         Show Install Command
-j, --jobs            Show Jobs Summary
-d, --details         Show Job Details

Please refer to the Advanced -> Scheduler section, for more detailed information on these options.
[/version]

Security

Grav 1.5 で追加された新しいセキュリティスキャナ CLI コマンドです。 これを実行すると、設定されたセキュリティ設定 に対してコンテンツを素早くスキャンすることができます。

bin/grav security                                                                                       [12:34:12]

Grav Security Check
===================

Scanning 11 pages [===================================================] 100% < 1 sec

[OK] Security Scan complete: No issues found...

PHP CGI-FCGI Information

サーバーで cgi-fcgi が動作しているかどうかを調べるには、コマンドラインで次のように入力します。

$ php -v
PHP 5.5.17 (cgi-fcgi) (built: Sep 19 2014 09:49:55)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with the ionCube PHP Loader v4.6.1, Copyright (c) 2002-2014, by ionCube Ltd.

もし、 (cgi-fcgi) への参照を見つけたら、すべての bin/grav コマンドの前に php-cli を付ける必要があります。あるいは、シェルで次のようなエイリアスを設定することもできます。これにより、CLI 版の PHP がコマンドラインから実行されるようになります。


オリジナル : https://learn.getgrav.org/17/cli-console/grav-cli